资源描述
数据结构之队列实验队列实验实验目的掌握队列这种数据结构特性及其主要存储结构,并能在现实生活中灵活运用。实验环境CodeBlocks实验要求1. 熟悉C语言的语法知识;2. 掌握队列的链式存储结构的定义、构造、销毁、插入、删除等基本操作;实验内容完成队列的链式存储结构的定义、取对头、出队、入队等函数的编写,并自己独立完成链式队列的输出函数编写(从队头开始输出)。要求在主函数中实现对以上操作的调用,实现以下功能:(1) 队列初始化为空队列。(2) 键盘输入偶数时,入队。(3) 键盘输入奇数时,出队。(4) 每输入一个整数,显示操作后队列中的值。(5) 键盘输入0时,算法结束。“附加题:打印杨辉三角形。源代码#include#include#include#defineMAXSIZE1024”pedefintelemtype;链队列的定义”pedefstructQueueNodeelemtypedata;structQueueNode*next;ILinkedQueueNode;IBedefstructLQueueLinkedQueueNode*front;LinkedQueueNode*rear;LQueue,*LinkedQueue;LinkedQueueInit_LinkedQueue()链队列的初始化LinkedQueueQ=(LinkedQueue)malloc(sizeof(LQueue);LinkedQueueNode*head=(LinkedQueueNode*)malloc(sizeof(LinkedQueueNode);if(head!=NULL&Q!=NULL)head-next=NULL;Q-front=head;Q-rear=head;returnQ;ntLinkedQueue_Empty(LinkedQueueQ)链队列的判空Hif(Q-front=Q-rear)return1;elsereturn0;ntEnter_LinkedQueue(LinkedQueueQ,elemtypex)入队*HLinkedQueueNode*node;node=(LinkedQueueNode*)malloc(sizeof(LinkedQueueNode);if(node=NULL)return0;node-data=x;node-next=NULL;Q-rear-next=node;Q-rear=node;return1;ntDelete_LinkedQueue(LinkedQueueQ,elemtype*x)出队*HLinkedQueueNode*node;if(Q-front=Q-rear)return0;elsenode=Q-front-next;* x=node-data;Q-front-next=node-next;if(node=Q-rear)Q-rear=Q-front;free(node);return1;ntGetFront_LinkedQueue(LinkedQueueQ,elemtype*x)取队头数据元素Hif(Q-front=Q-rear)return0;else* x=Q-front-next-data;return1;ntPrint_LinkedQueue(LinkedQueueQ)遍历*LinkedQueueNode*p=Q-front-next;if(p=NULL)return0;while(p!=NULL)printf(t%d,p-data);p=p-next;return1;voidmain()LinkedQueueQinti,k;intx;Q=Init_LinkedQueue();printf(该程序的功能:n);printf(键盘输入偶数时,人队人n);printf(键盘输入奇数时,出队n);printf(每输入一个整数,显示操作后的队列中的值5)printf(请任意输入一个数,输入0结束:n);scanf(%d,&i);doif(i%2=0)k=Enter_LinkedQueue(Q,i);elsek=Delete_LinkedQueue(Q,&x);Print_LinkedQueue(Q);printf(n);scanf(%d,&i);while(i!=0);运行结果讣蔽纓畑中昨2L冃24610一偶奇K.tacessreturnad0(OkO)enecutiontine:55.675sress3nykeytocontinue小声:内容整理不易,各位客官老爷点个赞再走吧
展开阅读全文