版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xxxx大学实验报告课程名称数据结构实验项目实验一线性结构(二)——栈和队列的操作院系信息学院计类系专业班级计类1501XX学号指导老师日期批改日期成绩一实验目的1.熟练掌握栈的存储结构及相关典型操作。2.熟练掌握队列的存储结构及相关典型操作。二实验内容及要求实验内容:1.建立链式栈,实现栈的初始化、进栈、出栈等典型操作。2.建立循环队列,实现队列的初始化、进队、出队等典型操作。实验要求:1.键盘输入数据;2.屏幕输出运行结果。3.要求记录实验源代码及运行结果。4.运行环境:VC++6.0三实验过程及运行结果1、循环队列#include<stdio.h>#include<stdlib.h>#defineOK1#defineERROR0#defineOVERFLOW-2#defineMAXQSIZE100//最大队列长度typedefstruct{int*base;//初始化的动态分配存储空间intfront;intrear;}SqQueue;//初始化队列intInitQueue(SqQueueQ){Q.base=(int*)malloc(MAXQSIZE*sizeof(int));if(!Q.base)exit(OVERFLOW);//存储分配失败Q.front=Q.rear=0;returnOK;}//入队操作intEnQueue(SqQueueQ){inte;if((Q.rear+1)%MAXQSIZE==Q.front)//判断队满{printf("队列已满,不能入队\n");returnERROR;}printf("请输入入队元素:");scanf("%d",&e);Q.base[Q.rear]=e;//入队Q.rear=(Q.rear+1)%MAXQSIZE;//队尾指针后移returnOK;}//出队操作intDeQueue(SqQueueQ){inte;if(Q.front==Q.rear)//判断队空{printf("队列已为空\n");returnERROR;}e=Q.base[Q.front];//队头出队printf("输出的出队元素为:");printf("%d\n",e);Q.front=(Q.front+1)%MAXQSIZE;//队头下表后移returnOK;}//队列长度intQueueLength(SqQueueQ){return((Q.rear-Q.front+MAXQSIZE)%MAXQSIZE);}//队列遍历intQueueTraverse(SqQueueQ){printf("遍历结果为:");while(Q.front!=Q.rear){printf("%d",Q.base[Q.front]);Q.front=(Q.front+1)%MAXQSIZE;}printf("\n");returnOK;}intmain(){intn;SqQueueQ;InitQueue(Q);printf("*输入1为入队*\n");printf("*输入2为出队*\n");printf("*输入3为队列长度*\n");printf("*输入4为遍历*\n");printf("*输入0为退出*\n");printf("*****************\n");while(scanf("%d",&n),n){switch(n){case1:EnQueue(Q);break;case2:DeQueue(Q);break;case3:printf("队列长度为%d\n",QueueLength(Q));break;case4:QueueTraverse(Q);break;}}return0;}2、链式栈#include<stdio.h>#include<stdlib.h>#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintSElemType;typedefstructnode{SElemTypedata;structnode*next;}SLnode,*SLinkList;typedefstruct{SLinkListtop,base;intlen;}S_LinkList;//栈的初始化StatusCreat_S(S_LinkList&S){intn;SLinkListp,q;printf("栈的初始化,请输入数据,以-1结束:\n");S.top=(SLinkList)malloc(sizeof(SLnode));S.base=(SLinkList)malloc(sizeof(SLnode));S.top->next=S.base;q=S.base;S.len=0;while(scanf("%d",&n),n!=-1){p=(SLinkList)malloc(sizeof(SLnode));p->data=n;S.top->next=p;p->next=q;
q=p;S.len++;}q=S.top->next;while(q!=S.base){printf("%d\n",q->data);q=q->next;}printf("*****\n");
returnOK;}//进栈StatusPush_S(S_LinkList&S){inte;printf("请输入进栈元素:");scanf("%d",&e);SLinkListp,q;q=S.top->next;p=(SLinkList)malloc(sizeof(SLnode));p->data=e;S.top->next=p;p->next=q;q=p;S.len++;returnOK;}//出栈StatusPop_S(S_LinkList&S){SLinkListp;p=S.top->next;if(p!=S.base)printf("出栈元素为%d\n",p->data);returnOK;}intmain(){S_LinkLists;inta;printf("*输入1为栈的初始化*\n");printf("*输入2为入栈*\n");
printf("*输入3为出栈*\n");printf("*输入0为退出*\n");printf("************************\n");while(scanf("%d",&a),a){switch(a){case1:Creat_S(s);break;case2:Push_S(s);break;case3:Pop_S(s);brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YY/T 0474-2025外科植入物聚丙交酯均聚物、共聚物和共混物体外降解试验
- 泰州学院《电磁学》2025-2026学年期末试卷
- 上海对外经贸大学《临床医学概要》2025-2026学年期末试卷
- 邢台新能源职业学院《德育与班级管理》2025-2026学年期末试卷
- 唐山幼儿师范高等专科学校《农业经济学》2025-2026学年期末试卷
- 上海工会管理职业学院《旅游学》2025-2026学年期末试卷
- 邢台应用技术职业学院《工程计算方法》2025-2026学年期末试卷
- 上海东海职业技术学院《金融管理学》2025-2026学年期末试卷
- 山西大学《传播研究方法》2025-2026学年期末试卷
- 沈阳建筑大学《运动康复生物力学》2025-2026学年期末试卷
- 保卫科部门绩效考核标准
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 数字化转型战略规划纲要
- 国家安全教育大学生读本课件高教2024年8月版课件-第四章坚持以人民安全为宗旨
- 数字化全过程成本管理
- 二级烟草专卖管理师理论考试题库
- 2024年全国中学生生物学联赛试题含答案
- DL∕T 5157-2012 电力系统调度通信交换网设计技术规程
- DL∕T 1795-2017 柔性直流输电换流站运行规程
- 五年级下册劳动教案完整版
评论
0/150
提交评论