当前位置:首页 >> 其它课程 >>

严蔚敏版数据结构链队列


#include <stdio.h> #include <malloc.h> typedefstruct Student/*定义学生类 */ { intnum; char name[20]; char sex[2]; int age; float grade; }stu; typedefstructQNode { stu data; structQNode

*next; }qnode,*queue; typedefstruct { queue front; queue rear; }linkqueue; linkqueueInitQueue()/*构造空队列 */ { linkqueue q; q.front=q.rear=(queue)malloc(sizeof(qnode)); if(!q.front) printf("OVERFLOW\n"); else { q.front->next=NULL; printf("OK\n"); return q; } } void DestroyQueue(linkqueue q)/*销毁队列 */ { queue p; while(q.front->next) { p=q.front->next; q.front->next=p->next; free(p); } free(q.front); printf("OK\n");

} linkqueueClearQueue(linkqueue q)/*清空队列 */ { queue p; while(q.front->next) { p=q.front->next; q.front->next=p->next; if(q.rear==p) q.rear=q.front; free(p); } printf("OK\n"); return q; } void QueueEmpty(linkqueue q)/*判断队列空*/ { if(q.rear==q.front) printf("TRUE\n"); else printf("FLASE\n"); } intQueueLength(linkqueue q)/*返回队列长度 */ { queue p=q.front->next; inti=0; while(p) { i++; p=p->next; } return (i); } stuGetHead(linkqueue q)/*返回队头元素,并返回 TRUE*/ { if(q.rear==q.front) printf("ERROR\n 以下输出为无效\n"); else { printf("OK\n"); return(q.front->next->data); } } linkqueueEnQueue(linkqueue q)/*插入函数*/

{ queue p; p=(queue)malloc(sizeof(qnode)); if(!p) printf("OVERFLOW\n"); else { printf("请输入插入学生的数据\n 学号:"); scanf("%d",&p->data.num); printf("姓名:"); scanf("%s",&p->data.name); printf("年龄:"); scanf("%d",&p->data.age); printf("性别:"); scanf("%s",&p->data.sex); printf("成绩:"); scanf("%f",&p->data.grade); p->next=NULL; q.rear->next=p; q.rear=p; printf("OK\n"); return q; } } linkqueueDeQueue (linkqueue q)/*删除函数*/ { queue p; stu e; if(q.rear==q.front) printf("ERROR\n"); else { p=q.front->next; e=p->data; printf("删除的学生信息为:\n 学号:%d\n 姓名:%s\n 性别:%s\n 年龄:%d\n 成 绩:%f\nOK\n 删除后表为:\n",e.num,e.name,e.sex,e.age,e.grade); q.front->next=p->next; if(q.rear==p) q.rear=q.front; free(p); return q; } } void display(linkqueue s)/*输出函数 */

{ queue p; p=s.front->next; printf("***************学生信息*****************\n"); printf(" 学号姓名性别年龄成绩\n"); while(p) { printf("%d\t%s\t%s\t%d\t%f\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->dat a.grade); p=p->next; } printf("****************************************\n"); } void main() { linkqueue q; stu e; intn,i,j; q=InitQueue(); printf("请输入任意键进入菜单..........\n"); getchar(); for(;;) { printf("***********************菜单******************\n"); printf(" 1.建了一个空队列\n"); printf(" 2.构建一个有关学生信息的队列\n"); printf(" 3.销毁队列\n"); printf(" 4.将栈清为空队列\n"); printf(" 5.若栈为空队列返回 TRUE,否则返回 FLASE\n"); printf(" 6.返回队列长度\n"); printf(" 7.返回队头元素\n"); printf(" 8.插入新元素\n"); printf(" 9.删除队尾元素,返回其值\n"); printf(" 0.停止\n"); printf("***********************************************\n"); printf(" 请输入你的选择(0~9):\n"); scanf("%d",&n); switch(n) { case 1: { q=InitQueue();

printf("现在输出空队列\n"); display(q); break; } case 2: { printf("请输入学生个数:\n"); scanf("%d",&i); for(j=0;j<i;j++) { q=EnQueue(q); } printf("现在输出建立的学生信息队列\n"); display(q); break; } case 3:DestroyQueue(q);break; case 4:q=ClearQueue(q);break; case 5:QueueEmpty(q);break; case 6:{ printf("队列的长度为:%d\n",QueueLength(q)); break; } case 7:{ e=GetHead(q); printf("队头元素为:\n 学号:%d\n 姓名:%s\n 性别:%s\n 年龄:%d\n 成 绩:%f\n",e.num,e.name,e.sex,e.age,e.grade); break; } case 8:{ q=EnQueue(q); printf("插入后的学生信息:\n"); display(q); break; } case 9:{ q=DeQueue(q); printf("删除后学生信息:\n"); display(q); break; } case 0:exit(0); }

} }


相关文章:
数据结构链、队列的各种操作
数据结构严蔚敏链队列的操... 2页 免费 数据结构上机实验——链队... 4页 ...栈与队列操作的实现完整版... 14页 2财富值 数据结构试验之队列的操作 暂无评...
严蔚敏版数据结构参考答案
严蔚敏版数据结构参考答案_理学_高等教育_教育专区。数据结构( C语言版) (第 ...将新的节点插入到链队列的尾部,同时将 尾指针指向这个节点;出队时,删除的是队...
严蔚敏数据结构复习整理完整版
严蔚敏数据结构复习整理完整版_研究生入学考试_高等教育...栈:查找,插入(位置固定),删除(位置固定) 队列:...然后再调整这个子树中有 关结点之间的 链接关系,使...
数据结构(严蔚敏)上机代码完整版
数据结构(严蔚敏)上机代码完整版_计算机软件及应用_IT/计算机_专业资料。数据结构...(); } 第五次上机 /*队列链式存储*/ #include <stdio.h> #include <...
数据结构 顺序栈 链栈 循环队列 链队列 hrbedu
数据结构 顺序栈 链栈 循环队列 链队列 hrbedu_计算机软件及应用_IT/计算机_专业资料。第三章实验报告实验名称:数据结构第三章实验 实验类型:验证性 学号 姓名:...
清华大学严蔚敏数据结构课后习题答案 第三章(栈与队列)
清华大学严蔚敏数据结构课后习题答案 第三章(栈与队列)_理学_高等教育_教育专区。严蔚敏数据结构课后习题答案清华大学严蔚敏数据结构课后习题答案 第三章(栈与队列) ...
严蔚敏数据结构各章习题及答案
严蔚敏数据结构(c语言版... 2页 免费 【数据结构精品】严蔚敏《... 11页...无论对于顺序存储还是链式存储的栈和队列来说, 进行插入或删除运算的时间复杂度...
数据结构 链队列和停车场
数据结构与算法课程实验报告 实验二:栈和队列的应用 姓名:沈靖雯 班级:14 信息...数据结构严蔚敏链队列的... 2页 免费 数据结构链、队列的各种... 暂无评价...
严蔚敏版数据结构课后习题答案-完整版
严蔚敏版数据结构课后习题答案-完整版_理学_高等教育..."; } return OK; } }; // 链栈的数据结构及...(注意不设头指针) ,试编写相应的队列初始化、入队...
严蔚敏-数据结构栈和队列习题
严蔚敏-数据结构栈和队列习题_工学_高等教育_教育专区。数据结栈和队列习题和详细...已知链队列的头尾指针分别是 f 和 r,则将值 x 入队的操作序列是___。 【...
更多相关标签: