• / 11
  • 下载费用:10 金币  

队列的操作.doc

关 键 词:
队列的操作.doc
资源描述:
实验四 队列的操作及应用(11 月 4 日)一、实验目的:1、 了解队列的概念、队列的特性2、 掌握在两种存储结构上如何实现队列的基本操作以及队列在程序设计中的应用3、 通过在 VC6.0 中实现队列的插入和删除加深理解链队列和循环队列的意义。二、实验环境PC 微机,Windows,DOS,Turbo C 或 Visual C++三、实验内容(1)问题描述队列是操作受限的线性表,是只允许仅在表的一端进行插入,而在另一端进行删除操作的线性表。在队列中,允许插入的一端称为队尾(rear) ,允许删除的一端称为对头(front) ;链队列的插入删除即入队和出队分别在队列的尾和头进行。注意在循环队列中队满和队空的描述方法。 (2)基本要求实现链队列的入队和出队算法,循环队列的插入删除算法。(3)算法描述 分别建立链队列和循环队列,实现在不同队列中的入队和出队操作。(4)算法实现A 循环队列#include #include #define maxize 64 typedef char datatype; typedef struct{ datatype data[maxize]; int front ,rear; }sequeue; sequeue *q; char x; //初始化void *nitiqueue() { q=(sequeue*)malloc(sizeof(sequeue)); q-front=maxize-1; q-rear=maxize-1; return q; } //判断是否为空void empty(sequeue*q) { if(q-front==q-rear) printf(“为空!\n“); else printf(“不为空!“); } //入队int pushqueue(sequeue*q,datatype x) { printf(“输入插入元素:“); scanf(“%c“, while(x!='\n'){ if((q-rear+1)%maxize==q-front) { printf(“队满!“); return -1; } else { q-rear=(q-rear+1)%maxize; q-data[q-rear]=x; } scanf(“%c“, } } //出队void popqueue(sequeue*q) { if(q-rear==q-front) { printf(“队空!/n“); } else q-front=(q-front+1)%maxize; printf(“出队元素为:%c\n“,q-data[q-front]);} //输出队列长度void length(sequeue *q) { int j=q-front;int i=0; while(j!=q-rear) { i++; j=j+1; } printf(“队列长度为:%d\n“,i);} //输出队列void pop(sequeue*q) { int i=q-front; while(i!=(q-rear)+1) { printf(“%c\n“,q-data[i]);i=(i+1)%maxize; } } int main(void) { nitiqueue(); empty(q); pushqueue(q,x); popqueue(q); length(q); pushqueue(q,x); length(q); pop(q); return 0; } #include #include #define MaxSize 64 typedef char datatype; typedef struct Node{ datatype data; struct Node* next; }linkqueue; void InitLinkQueue(linkqueue **front,linkqueue **rear)//置空队列 { *front=(linkqueue*)malloc(sizeof(linkqueue)); (*front)-next=NULL; *rear=*front; } void PushQueue(linkqueue **rear,datatype x )//入队列{ linkqueue *s=(linkqueue*)malloc(sizeof(linkqueue)); s-data=x; s-next=NULL; (*rear)-next=s; *rear=s; } datatype PopQueue(linkqueue *front,linkqueue **rear)//取出队头元素{ linkqueue *p; datatype x; if (*rear==front) { pr
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:队列的操作.doc
链接地址:https://www.weizhuannet.com/p-9503286.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

微传网博客

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开