当前位置: 首页 > article >正文

【数据结构/C++】栈和队列_链队列

image.png

#include <iostream>
using namespace std;
// 链队列
typedef int ElemType;
typedef struct LinkNode
{
  ElemType data;
  struct LinkNode *next;
} LinkNode;
typedef struct
{
  LinkNode *front, *rear;
} LinkQueue;
// 初始化
void InitQueue(LinkQueue &Q)
{
  Q.front = Q.rear = (LinkNode *)malloc(sizeof(LinkNode));
  Q.front->next = NULL;
}
// 入队
bool EnQueue(LinkQueue &Q, ElemType x)
{
  LinkNode *p = (LinkNode *)malloc(sizeof(LinkNode));
  p->data = x;
  p->next = NULL;
  Q.rear->next = p;
  Q.rear = p;
  return true;
}
// 出队
bool DeQueue(LinkQueue &Q, ElemType &x)
{
  if (Q.front == Q.rear)
  {
    return false;
  }
  LinkNode *p = Q.front->next;
  x = p->data;
  Q.front->next = p->next;
  // 如果是最后一个结点出队
  if (Q.rear == p)
  {
    Q.rear = Q.front;
  }
  free(p);
  return true;
}
// 遍历
void Traverse(LinkQueue Q)
{
  LinkNode *p = Q.front->next;
  while (p != NULL)
  {
    cout << p->data << " ";
    p = p->next;
  }
  cout << endl;
}
// 长度
int QueueLength(LinkQueue Q)
{
  int length = 0;
  LinkNode *p = Q.front->next;
  while (p != NULL)
  {
    length++;
    p = p->next;
  }
  return length;
}
int main()
{
  LinkQueue Q;
  ElemType x;
  InitQueue(Q);
  EnQueue(Q, 1);
  EnQueue(Q, 2);
  EnQueue(Q, 3);
  EnQueue(Q, 4);
  DeQueue(Q, x);
  Traverse(Q);
  cout << QueueLength(Q) << endl;
  return 0;
}

image.png


http://www.kler.cn/a/145009.html

相关文章:

  • 深度解析:网站快速收录与服务器性能的关系
  • HarmonyOS简介:HarmonyOS核心技术理念
  • java求职学习day23
  • PCA9685 一款由 NXP Semiconductors 生产的 16 通道、12 位 PWM(脉宽调制)控制器芯片
  • 项目集成GateWay
  • 我的求职面经:(1)C++里指针和数组的区别
  • 怎么给数据库某个字段建立一个前缀索引
  • 航天宏图——宏图1号样例数据0.5米-5米分辨率(上海部分)
  • 队列详解(C语言实现)
  • PaddleOCR学习笔记
  • 如何处理git多分支
  • 将本地项目上传到gitee
  • 分布式篇---第七篇
  • 从0到0.01入门 Webpack| 003.精选 Webpack面试题
  • Ubuntu 设置Nginx开机自启
  • python之静态服务器程序开发
  • 【数据结构】树如何定义 | 如何存储 | 实际应用
  • 机器学习算法——主成分分析(PCA)
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • Kerberos 高可用配置和验证
  • 在浏览器中直接打开PDF
  • HarmonyOS应用开发者基础认证【题库答案】
  • UniApp Button讲解
  • idea里面常用插件
  • Cisco Packet Tracer配置命令——路由器篇
  • 2304. 网格中的最小路径代价 : 从「图论最短路」过渡到「O(1) 空间的原地模拟」