欢迎来到天天文库
浏览记录
ID:38706138
大小:26.50 KB
页数:4页
时间:2019-06-18
《数据结构队列的顺序表示和实现C语言演示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*队列的顺序表示和实现*/#include#include//定义机构体typedefstructQueue{int*pBash;//存放数组intfront;//队列第一个元素下标intrear;//队列最后一个元素的下一个元素的下标}QUEUE,*PQUEUE;//函数的前置声明voidinit(PQUEUE);//初始化队列boolen_queue(PQUEUE,int);//入队voidtraverse_queue(PQUEUE);//遍历队列bo
2、olfull_queue(PQUEUE);//判断队列是否已满boolempty_queue(PQUEUE);//判断队列是否是空boolout_queue(PQUEUE,int*);//出队intmain(void){QUEUEqueue;intval;//初始化队列init(&queue);//入队一个元素printf("入队6个元素");en_queue(&queue,1);en_queue(&queue,2);en_queue(&queue,3);en_queue(&queue,4)
3、;en_queue(&queue,5);en_queue(&queue,6);//遍历这个队列printf("查看队列元素");traverse_queue(&queue);//一个元素出队if(out_queue(&queue,&val)){printf("一个元素出队,值为%d",val);}else{printf("出栈失败!");}//遍历这个队列printf("查看队列元素");traverse_queue(&queue);return0;}//初始化队列voidinit(
4、PQUEUEqueue){queue->pBash=(int*)malloc(sizeof(int)*6);queue->front=0;queue->rear=0;}//入队一个元素boolen_queue(PQUEUEqueue,intval){//判断队列是否已满if(full_queue(queue)){printf("队列已满,不能加入元素");returnfalse;}/*此处出现严重错误原错误代码:queue->pBash[queue->front]=val;这样做的结果是,所
5、有进入队列元素,都会替换掉队首元素正确的写法是:queue->pBash[queue->rear]=val;*/queue->pBash[queue->rear]=val;queue->rear=(queue->rear+1)%6;returntrue;}//判断队列是否已满boolfull_queue(PQUEUEqueue){if(queue->front==(queue->rear+1)%6){returntrue;}else{returnfalse;}}//遍历这个队列voidtrave
6、rse_queue(PQUEUEqueue){inti;i=queue->front;while(i!=queue->rear){printf("%d",queue->pBash[i]);i=(i+1)%6;}printf("");return;}//判断队列是否是空boolempty_queue(PQUEUEqueue){if(queue->front==queue->rear){returntrue;}else{returnfalse;}}//出队一个元素boolout_queue(PQ
7、UEUEqueue,int*val){if(empty_queue(queue)){printf("队列已经为空");returnfalse;}*val=queue->pBash[queue->front];queue->front=(queue->front+1)%6;returntrue;}/*VC++6.0输出的结果:==================================入队6个元素队列已满,不能加入元素查看队列元素12345一个元素出队,值为1查看队列元素2345===
8、===============================*/
此文档下载收益归作者所有