链式队列的实现代码,链式队列的实现原理

  链式队列的实现代码,链式队列的实现原理

  伊德斯干货盘点

  一~我爱你~什么是队列只允许在一端进行插入数据,在另一端进行删除数据的特殊的线性表。

  二~我爱你~队列的特点1.队列是一种操作受限的线性表。

  2.队头作为允许删除的一端。

  3.队尾作为允许插入的一端。

  4.没有元素的队列称为空队列。

  三~我爱你~队列的基本操作1.队列的初始化

  2.队列的判空操作

  3.队列的入队操作

  4.队列的出队操作

  5.获取队列中的元素

  7.计算队列中元素的个数

  6.销毁队列

  四~我爱你~代码实现(1)伫列文件

  #包括" Queue.h "

  //创建新结点

  静态QNode *BuyLQNode(QElemType数据)

  {

  qnode * plqnode=(qnode *)malloc(sizeof(qnode));

  if (NULL==pLQNode)

  {

  printf(申请空间失败!\ n ;

  断言(plq node);

  }

  pLQNode-数据=日期:

  plq node-_ pnl=null;

  返回plqnode

  }

  请参见Init(LQueue *q)

  {

  断言(q);

  q-pf front=q-prear=null;

  }

  请参见队列*q,QElemType数据

  {

  断言(q);

  if(null==q-pffront)

  {

  q-pffront=q-prear=buylqnode(日期);

  返回;

  }

  q-pre-_ pnext=buylqnode(日期);

  q-prear=q-prear-_ pnext;

  }

  请参阅Pop(LQueue *q)

  {

  断言(q);

  qnode * pdel

  if(null==q-pffront)

  {

  返回;

  }

  if(q-pffront==q-prear)

  {

  q-prear=null;

  }

  pdel=q-pf ran;

  q-pf front=q-pf front-_ pnext;

  自由(PDL);

  }

  qelemtype lqueop(lqueue * q)

  {

  断言(q);

  返回q-pffront数据;

  }

  qelemtype lqueback(lqueue * q)

  {

  断言(q);

  返回q-前期数据;

  }

  int lqueue * q(消歧义)

  {

  int count=0;

  qnode * pcur

  断言(q);

  pcur=q-pfra;

  while (pCur)

  {

  pcur=pcur-_ pnext;

  计数;

  }

  返回计数;

  }

  int null(lqueue * q)

  {

  返回null==-q-pf front;

  }

  见某人毁灭(LQueue* q)

  {

  断言(q);

  q node * pcur=q-pf ran;

  while(pCur)

  {

  qnode * next=pcur-_ pnext;

  自由(pcur);

  pcur=下一步;

  }

  q-pf front=q-prear=null;

  }

  参见一些打印(const lqueue * q)

  {

  对于(q node * cur=q-pf front);-是吗?=NULL:cur=cur- _pNext)

  {

  printf("% d-",当前日期):

  }

  printf(" \ n ");

  }(2)队列h。文件

  #包括标准视频

  #包括标准库

  #包括标准布尔

  #include assert.h包含断言

  typedef int qelemtype

  //typedef struct Bt node * qelemtype;

  typedef结构QNode

  {

  QElemType日期;

  结构qnode * _ pnext

  } qnode

  typedef结构LQueue

  {

  qnode * pfara

  qnode * prear

  }长尾巴;

  //初始化

  请参见Init(LQueue *q):

  //入队列

  请参见有的推送(lqueue * q,qelemtype数据);

  //出队列

  见某人(l队列* q);

  //返回队头元素

  qelemtype lqueop(lqueue * q);

  //返回返回队列长度

  int lqueue * q(列尾x问):

  //队列是否为空

  int quequeempty(lqueue * q):

  见某人毁灭(l队列* q);

  见一些印刷品(const l queue * q);(3)试验文件

  包括" Queue.h "

  请参阅菜单()

  打印文件(* * * * * * * * * * * * * * * *)请输入你的操作* * * * * * * * * * * \ n];

  打印文件(* * * * * * * * * * * * * * * * 1)。初始化队列* * * * * * * * * * * \ n];

  打印输出(* * * * * * * * * * * * * * * * 2)。入队* * * * * * * * * * * \ n];

  打印输出(* * * * * * * * * * * * * * * * 3)。出队* * * * * * * * * * * \ n];

  打印文件(* * * * * * * * * * * * * * * * 4)。获取队列大小* * * * * * * * * * * \ n];

  打印输出(* * * * * * * * * * * * * * * * 5)。查看队列元素* * * * * * * * * * * \ n];

  打印文件(* * * * * * * * * * * * * * * * 6)。销毁队列* * * * * * * * * * * \ n];

  打印文件(* * * * * * * * * * * * * * * * 7)。退出* * * * * * * * * * * \ n];

  printf(" \ n ");

  }

  int main()

  l queue q;

  int enele=0;

  int deele=0;

  int qsize=0;

  int ope=0:

  布尔循环=真:

  而(循环)

  menu();

  printf(请输入你的操作");

  scanf("% d,ope ");

  交换机(ope)

  {

  案例1:

  任何init(q);

  printf(初始化队列成功!\ n ;

  打断;打断;

  案例2:

  printf(输入入队元素");

  scanf("% d,enele ");

  推(q、enele);

  printf(入队成功!\ n ;

  打断;打断;

  案例3:

  printf(输入出队元素");

  scanf("% d,deele ");

  (问)短链氯化石蜡;

  printf(出队元素为:%d\n,迪尔

  打断;打断;

  案例4:

  Qsize=任意位数(q);

  printf("% d \ n,qsize ");

  打断;打断;

  案例5:

  printf(队列的元素为:\ n);

  列印(q);

  打断;打断;

  案例6:

  销毁液(q);

  printf(销毁成功\ n ;

  打断;打断;

  案例7:

  loop=false:

  printf(退出成功!\ n ;

  打断;打断;

  默认设置:

  printf(输入不合理,请重新输入!\ n ;

  打断;打断;

  }

  }

  (4)makefile文件

  src=$(通配符*。c)

  obj=$(patsubst %。c,%。o,$(src))

  全部:测试

  测试:$(obj)

  gcc $^ -pthread -o $@

  清洁:

  -rm -rf $(obj)测试

  %.o:%。c

  gcc -c $ -o $@。假的:清洗所有v .结果显示

  ,转载请联系作者获得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: