欢迎来到天天文库
浏览记录
ID:38702102
大小:27.50 KB
页数:5页
时间:2019-06-17
《石油大学 队列操作(链队列+顺序队列)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//进队出队操作时自动判断队空队满#include#include#defineMAXSIZE1000typedefstruct//顺序队列定义{intdata[MAXSIZE];//队员的存储空间intfront,rear;//队头、队尾指针}SeQueue;SeQueue*sq;intcreatesq()//顺序队列的建立{intn,x,i;sq=(SeQueue*)malloc(sizeof(SeQueue));sq->front=sq->rear=-1;printf("请输入要建立的顺序队列元素个数:");scanf("%
2、d",&n);printf("请输入数据元素:");for(i=0;idata[i]=x;sq->rear++;}return0;}intputsq()//顺序队列的输出{inti;printf("顺序队列输出为:");for(i=sq->front+1;i<=sq->rear;i++)printf("%d",sq->data[i]);printf("");return0;}intemptysq()//判断队空(顺序队列){if(sq->front==sq->rear)return1;elsereturn0;}
3、intfullsq()//判断队满(顺序队列){if(sq->rear+1==MAXSIZE)return1;elsereturn0;}intinsq()//入队(顺序队列){intx;if(fullsq())printf("队满!");else{printf("请输入入队元素:");scanf("%d",&x);sq->data[++sq->rear]=x;}return0;}intoutsq()//出队(顺序队列){intx;if(emptysq())printf("队空!");else{x=sq->data[++sq->front];printf("队头
4、元素%d已出队",x);}return0;}typedefstructnode//链队列结点定义{intdata;structnode*next;}QNode;typedefstruct//将链队列头尾指针封装在一起{QNode*front;QNode*rear;}LQueue;LQueue*q;intcreatelq()//创建带头节点的链队列{inti,n;QNode*p;q=(LQueue*)malloc(sizeof(LQueue));p=(QNode*)malloc(sizeof(QNode));q->front=q->rear=p;printf("请输
5、入要建立的链栈元素个数:");scanf("%d",&n);printf("请输入数据:");for(i=0;idata);q->rear->next=p;q->rear=p;}q->rear->next=NULL;return0;}intputlq()//链队列的输出{QNode*p;p=q->front->next;printf("顺序队列输出为:");while(p!=NULL){printf("%d",p->data);p=p->next;}print
6、f("");return0;}intemptylq()//判断队空(链队列){if(q->front==q->rear)return1;elsereturn0;}intinlq()//入队(链队列){intx;QNode*p;p=(QNode*)malloc(sizeof(QNode));printf("请输入入队元素:");scanf("%d",&x);p->data=x;p->next=NULL;q->rear->next=p;q->rear=p;return0;}intoutlq()//出队(链队列){QNode*p;if(emptylq())printf(
7、"队空!");elseif(q->front->next==NULL){printf("队空!");q->rear=q->front;}else{p=q->front->next;q->front->next=p->next;printf("队头元素%d已出队",p->data);free(p);}return0;}intmain(){intn;createsq();putsq();printf("*************顺序队列操作*************0.退出1.进队2.出队***********************
此文档下载收益归作者所有