




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*验四:栈和队列的基本操作实验内容 1采用链式存储实现栈的初始化、入栈、出栈操作。 2采用顺序存储实现栈的初始化、入栈、出栈操作。 3采用链式存储实现队列的初始化、入队、出队操作。 4采用顺序存储实现循环队列的初始化、入队、出队操作。 5在主函数中设计一个简单的菜单,分别测试上述算法。*/#include stdio.h#include stdlib.h#define STACK_INIT_SIZE 100/存储空间初始分配量#define STACKINCREMENT 10/存储空间分配增加量#define ERROR 0#define OVERFLOW -2#define OK 1typedef int SElemType;typedef int QElemType;typedef struct /顺序栈的结构SElemType *base;SElemType *top;int stacksize;SqStack;typedef struct SqNode/链栈的结构单元SElemType data;SqNode *Link;*Sqptr,NODE;typedef structSqptr top; /栈顶指针 Stack;int InitStackb(Stack &S)/链式存储实现栈的初始化S.top=(Sqptr)malloc(sizeof(NODE);if(!S.top) exit (OVERFLOW);S.top-Link=NULL;return 1;void Pushb(Stack &S)/链式存储实现栈的入栈操作Sqptr p;int x;printf(请输入入栈元素(以0结束):);scanf(%d,&x);while(x)p=(Sqptr)malloc(sizeof(NODE);if(!p) return ;p-data=x;p-Link=S.top-Link;S.top-Link=p;scanf(%d,&x);void Popb(Stack &S)/链式存储实现栈的出栈操作int x;Sqptr p;while(S.top-Link) p=S.top-Link; x=p-data; S.top-Link=p-Link; printf(t删除的栈顶元素是%dn,x); free(p); int InitStack(SqStack &S)/顺序存储初始化栈 S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType);if(!S.base)exit(-2);S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK; void createStack(SqStack &S)/顺序栈元素入栈 int a; printf(请输入入栈元素(以0结束):); scanf(%d,&a); while(a) if(S.top-S.base=S.stacksize) S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType); if(!S.base) exit(OVERFLOW); S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; *S.top+=a; scanf(%d,&a); void Popa(SqStack &S)/顺序存储实现栈的出栈操作SElemType *p;int x;while(S.top-S.base) p=S.top;x=*-S.top;printf(删除的栈顶元素是%dn,x); typedef struct QNode QElemType data; struct QNode *next;*QueuePtr,QNode; typedef structQueuePtr front;QueuePtr rear;LinkQueue;int InitQueue(LinkQueue &Q)/链式存储实现队列的初始化Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode);if(!Q.front) exit(OVERFLOW);Q.front-next=NULL; return 1;void EnQueue(LinkQueue &Q)/链式存储实现队列的入队 int x; QueuePtr p; printf(请输入队列元素(以0结束); scanf(%d,&x);while(x) p=(QueuePtr)malloc(sizeof(QNode); if(!p) exit(OVERFLOW); p-data=x; p-next=NULL; Q.rear-next=p; Q.rear=p; scanf(%d,&x);void DeQueue(LinkQueue &Q)/链式存储实现队列的出队int x;QueuePtr p; while(Q.front!=Q.rear) p=Q.front-next; x=p-data; printf(t删除的队头元素是:%dn,x); Q.front-next=p-next; if(Q.rear=p) Q.rear=Q.front; free(p); typedef structSElemType *base;int front,rear;SqQueue;int InitQueueb(SqQueue &S)/顺序存储实现队列的初始化 S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType); if(!S.base) exit(OVERFLOW); S.front=S.rear=0; return 1;void EnQueueb(SqQueue &S)/顺序存储实现队列的入队int x;printf(请输入入队元素(以0结束):);scanf(%d,&x);while(x)if(S.rear+1)%STACK_INIT_SIZE=S.front) return;S.baseS.rear=x;S.rear=(S.rear+1)%STACK_INIT_SIZE;scanf(%d,&x);void DeQueueb(SqQueue &S)/顺序存储实现队列的出队int x; while(S.front!=S.rear) x=S.baseS.front; printf(t删除的队头元素是:%dn,x); S.front=(S.front+1)%STACK_INIT_SIZE; void main()SqStack La;int menu;Stack Lb;LinkQueue Q;SqQueue S;Lb.top=NULL;La.base=NULL;La.top=NULL;doprintf(1 创建顺序桟n);printf(2 顺序栈出栈操作n);printf(3 创建链栈n);printf(4 链栈出栈操作n);printf(5 创建链队列n);printf(6 连队的出对操作n);printf(7 创建顺序队列n);printf(8 顺序队列出对操作n);printf(0 退出n);printf(n请输入所选菜单(0-10):);scanf(%d,&menu);switch(menu)case 1:InitStack(La);createStack(La);break;case 2: if(La.base=NULL|La.top=NULL)printf(I am is null,Plase create firstn);break;Popa(La);break;case 3: InitStackb(Lb); Pushb(Lb);break;case 4:if(Lb.top=NULL) printf(这是个空栈,无法执行输出操作n); break; Pop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自购药品登记管理办法
- 药品短缺清单管理办法
- 药品销售机构管理办法
- 西藏市容市貌管理办法
- 西藏物业需求管理办法
- 设立境外机构管理办法
- 评价机构管理办法处罚
- 财务基础发票管理办法
- 财政债券资金管理办法
- 财政投资工程管理办法
- IEC31010-2019风险管理 风险评估技术(雷泽佳译-2024)
- 人民法院司法警察执法资格考试题库(500题)
- 新生儿黄疸的护理常规
- (人教2024版)英语七年级上册 Unit 1单元复习课件(新教材)
- ISOIEC38507-2022信息技术-IT治理-组织使用人工智能的治理影响(中文版-雷泽佳译2024)
- 国家开放大学本科《西方行政学说》期末纸质考试总题库珍藏版
- 2024年莱芜市莱城区小升初素养数学检测卷含解析
- DL∕T 1552-2016 变压器油储存管理导则
- (高级)烟草物理检验工职业鉴定理论考试题库-上(单选题)
- 广东省茂名市2023-2024学年八年级下学期期末语文试题
- 部编版七年级上册语文必背古诗文+翻译
评论
0/150
提交评论