已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xxxx大学实验报告课程名称 数据结构 实验项目 实验一 线性结构(二)栈和队列的操作院 系 信息学院计类系 专业班级 计类1501 姓 名 学 号 指导老师 日 期 批改日期 成 绩 一 实验目的1.熟练掌握栈的存储结构及相关典型操作。2.熟练掌握队列的存储结构及相关典型操作。二 实验内容及要求实验内容:1.建立链式栈,实现栈的初始化、进栈、出栈等典型操作。2.建立循环队列,实现队列的初始化、进队、出队等典型操作。实验要求:1.键盘输入数据;2.屏幕输出运行结果。3.要求记录实验源代码及运行结果。4.运行环境:VC+6.0三 实验过程及运行结果1、 循环队列#include#include#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXQSIZE 100 /最大队列长度typedef struct int *base; /初始化的动态分配存储空间 int front; int rear; SqQueue; /初始化队列int InitQueue(SqQueue Q)Q.base=(int*)malloc(MAXQSIZE*sizeof(int);if (!Q.base)exit(OVERFLOW); /存储分配失败Q.front=Q.rear=0;return OK; /入队操作int EnQueue(SqQueue Q)int e;if (Q.rear+1)%MAXQSIZE=Q.front) /判断队满printf(队列已满,不能入队n);return ERROR;printf(请输入入队元素:);scanf(%d,&e);Q.baseQ.rear=e; /入队Q.rear =(Q.rear+1)%MAXQSIZE; /队尾指针后移return OK; /出队操作int DeQueue(SqQueue Q)int e;if(Q.front=Q.rear) /判断队空printf(队列已为空n);return ERROR;e=Q.baseQ.front; /队头出队printf(输出的出队元素为:);printf(%dn,e);Q.front=(Q.front+1)%MAXQSIZE; /队头下表后移return OK; /队列长度int QueueLength(SqQueue Q)return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE); /队列遍历int QueueTraverse(SqQueue Q)printf(遍历结果为:);while (Q.front!=Q.rear)printf(%d ,Q.baseQ.front);Q.front=(Q.front+1)%MAXQSIZE;printf (n);return OK;int main()int n;SqQueue Q;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)case 1:EnQueue(Q);break;case 2:DeQueue(Q);break;case 3:printf(队列长度为%dn,QueueLength(Q);break;case 4:QueueTraverse(Q);break;return 0;2、 链式栈#include#include#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef int SElemType;typedef struct nodeSElemType data; struct node *next;SLnode,*SLinkList;typedef struct SLinkList top,base; int len;S_LinkList; /栈的初始化Status Creat_S(S_LinkList &S)int n;SLinkList p,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(%dn,q-data); q=q-next; printf(*n); return OK; /进栈 Status Push_S(S_LinkList &S) int e; printf(请输入进栈元素:); scanf(%d,&e); SLinkList p,q; q=S.top-next; p=(SLinkList )malloc(sizeof(SLnode); p-data=e; S.top-next=p; p-next=q; q=p; S.len+; return OK; /出栈Status Pop_S(S_LinkList &S)SLinkList p; p=S.top-next; if(p!=S.base) printf(出栈元素为%dn,p-data); return OK; int main() S_LinkList s; int a;printf(*输入1为栈的初始化*n); printf(*输入2为入栈*n); printf(*输入3为出栈*n); printf(*输入0为退出*n); printf(*n);while(scanf(%d,&a),a)switch(a)case 1:Creat_S(s);break;case 2:Push_S(s);break;case 3:Pop_S(s);break;r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中级注册安全工程师之安全生产技术基础能力检测试卷B卷附答案
- 胆汁尿的护理
- 雨课堂学堂在线学堂云《财政与民生(辽宁大学 )》单元测试考核答案
- 2026年网络预约出租汽车驾驶员从业资格考试题库及参考答案(能力提升)
- 2025四川成都市武侯区玉林社区卫生服务中心第三次社会招聘编外人员2人参考题库带答案解析
- 2026秋季国家管网集团华中公司高校毕业生招聘备考题库附答案
- 南昌农业发展集团有限公司劳务派遣岗招聘历年真题汇编附答案解析
- 2025重庆三峡学院招聘4人模拟试卷附答案解析
- 2026年设备监理师之设备监理合同考试题库及参考答案(典型题)
- 2026年质量员之土建质量基础知识考试题库含答案ab卷
- 2024-2025学年上学期上海六年级英语期末复习卷3
- 体育-初中七年级田径大单元教学计划表及立定跳远教学设计、教案
- 第10课人类社会及其发展规律(教学设计)【中职专用】2024-2025学年中职思想政治(高教版2023基础模块)
- 《公共政策学(第二版)》 课件 杨宏山 第1-6章 导论、政策系统-政策执行
- 《烹饪美学》课件-项目三 烹饪图案
- 湿式电除尘器施工安装方案
- 铁工电〔2023〕54号国铁集团关于印发《普速铁路工务安全规则》的通知
- (高清版)DZT 0342-2020 矿坑涌水量预测计算规程
- copd合并心衰护理查房
- 圣罗兰行业概括分析
- 老挝语-中文对照发音
评论
0/150
提交评论