数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)137.pdf

上传人:深夜****等你... 文档编号:84283367 上传时间:2023-04-04 格式:PDF 页数:6 大小:91.25KB
返回 下载 相关 举报
数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)137.pdf_第1页
第1页 / 共6页
数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)137.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)137.pdf》由会员分享,可在线阅读,更多相关《数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)137.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构算法题(假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针)试编写相应的队列初始化,入队列和出队列的算法!)(提供两种答案哦!)一:/既然是算法就不用源码了具体看注释 typedef int Datatype;typedef struct queuenode Datatype data;struct queuenode*next;QueueNode;/以上是结点类型的定义 typedef struct queuenode rear;LinkQueue;/只设一个指向队尾元素的指针 void InitQueue(LinkQueue&Q)/置空队:就是使头结

2、点成为队尾元素 Q.rear=(queuenode*)malloc(sizeof(queuenode)QueueNode*s;Q-rear=Q-rear-next;/将队尾指针指向头结点 while(Q-rear!=Q-rear-next)/当队列非空,将队中元素逐个出队 s=Q-rear-next;Q-rear-next=s-next;free(s);/回收结点空间 int EmptyQueue(LinkQueue&Q)/判队空 /当头结点的 next 指针指向自己时为空队 return Q-rear-next-next=Q-rear-next;void EnQueue(LinkQueue&

3、Q,Datatype x)/入队 /也就是在尾结点处插入元素 QueueNode*p=(QueueNode*)malloc (sizeof(QueueNode);/申请新结点 p-data=x;p-next=Q-rear-next;/初始化新结点并链入 Q-rear-next=p;Q-rear=p;/将尾指针移至新结点 Datatype DeQueue(LinkQueue&Q,Datatype&x)/出队,把头结点之后的元素摘下 Datatype t;QueueNode*p;if(EmptyQueue(Q)Error(Queue underflow);p=Q-rear-next-next;/p

4、 指向将要摘下的结点 x=p-data;/保存结点中数据 if(p=Q-rear)/当队列中只有一个结点时,p 结点出队后,要将队尾指针指向头结点 Q-rear=Q-rear-next;Q-rear-next=p-next;else Q-rear-next-next=p-next;/摘下结点 p free(p);/释放被删结点 return x;二:typedef struct Node int data;struct Node*next;Node,*CiLNode;typedef struct CiLNode CiLrear;CiQueue;void InitCiQueue(CiQueue&

5、Q)/初始化循环链表表示的队列 Q Q=(CiLNode*)malloc(sizeof(CiLNode);Q-next=Q;/InitCiQueue void EnCiQueue(CiQueue&Q,int x)/把元素 x 插入循环链表表示的队列Q,Q 指向队尾元素,Q-next 指向头结点,Q-next-next 指向队头元素 p=(CiLNode*)malloc(sizeof(CiLNode);p-data=x;p-next=Q-next;/直接把 p 加在 Q 的后面 Q-next=p;Q=p;/修改尾指针 Status DeCiQueue(CiQueue&Q,int x)/从循环链表表示的队列 Q 头部删除元素 x if(Q=Q-next)return INFEASIBLE;/队列已空 p=Q-next-next;x=p-data;Q-next-next=p-next;free(p);return OK;/DeCiQueue

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁