首页 栈和队列实验报告

栈和队列实验报告

举报
开通vip

栈和队列实验报告 栈 的 顺 序 表 示 和 实 现 实验目的 了解栈和队列的特性。 掌握栈的顺序表示和实现。 掌握栈的链式表示和实现。 掌握队列的顺序表示和实现。 掌握队列的链式表示和实现。 掌握栈和队列在实际问题中的应用。 实验要求 认真阅读和掌握本实验的程序。 2. 上机运行本程序。 3. 保存和打印出程序的运行结果,并结合程序进行分析。 4. 按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。 三...

栈和队列实验报告
栈 的 顺 序 表 示 和 实 现 实验目的 了解栈和队列的特性。 掌握栈的顺序表示和实现。 掌握栈的链式表示和实现。 掌握队列的顺序表示和实现。 掌握队列的链式表示和实现。 掌握栈和队列在实际问题中的应用。 实验要求 认真阅读和掌握本实验的程序。 2. 上机运行本程序。 3. 保存和打印出程序的运行结果,并结合程序进行分析。 4. 按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。 三、实验内容 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能: 初始化顺序栈。 插入元素。 删除栈顶元素。 取栈顶元素。 遍历顺序栈。 置空顺序栈。 四,解题思路 程序清单 #include #include #define MAXNUM 20 #define ElemType int /*定义顺序栈的存储结构*/ typedef struct { ElemType stack[MAXNUM]; int top; }SqStack; /*初始化顺序栈*/ void InitStack(SqStack *p) { if(! p) printf("内存分配失败!"); p->top=-1; } /*入栈*/ void Push(SqStack *p,ElemType x) { if(p->toptop=p->top+1; p->stack[p->top]=x; } else printf("Overflow!\n"); } /*出栈*/ ElemType Pop(SqStack *p) { ElemType x; if(p->top>=0) { x=p->stack[p->top]; printf("以前的栈顶数据元素%d已经被删除!\n",p->stack[p->top]); p->top=p->top-1; return(x); } else { printf("Underflow!\n"); return(0); } } /*获取栈顶元素*/ ElemType GetTop(SqStack *p) { ElemType x; if(p->top>=0) { x=p->stack[p->top]; printf("\n栈顶元素喂:%d\n",x); return(x); } else { printf("Underflow!\n"); return(0); } } /*遍历顺序栈*/ void OutStack(SqStack *p) { int i; printf("\n"); if(p->top<0) printf("这是一个空栈!"); printf("\n"); for(i=p->top;i>=0;i--) printf("第%d个数据元素是:%6d\n",i,p->stack[i]); } /*置空顺序栈*/ void setEmpty(SqStack *p) { p->top=-1;} /*主函数*/ void main() { SqStack *q; int cord;ElemType a; printf("第一次使用必须初始化!\n"); do{ printf("\n"); printf("\n----------主菜单-----------\n"); printf("\n 1 初始化顺序栈 \n"); printf("\n 2 插入一个元素 \n"); printf("\n 3 删除栈顶元素 \n"); printf("\n 4 取栈顶元素 \n"); printf("\n 5 置空顺序栈 \n"); printf("\n 6 结束程序运行 \n"); printf("\n-----------------------------\n"); printf("清输入您的选择(1,2,3,4,5,6)"); scanf("%d",&cord); printf("\n"); switch(cord) { case 1: { q=(SqStack *)malloc(sizeof(SqStack)); InitStack(q); OutStack(q); }break; case 2: { printf("清输要插入的元素:a="); scanf("%d",&a); Push(q,a); OutStack(q); }break; case 3: { Pop(q); OutStack(q); }break; case 4: { GetTop(q); OutStack(q); }break; case 5: { setEmpty(q); printf("\n顺序栈被置空!\n"); OutStack(q); }break; case 6: exit(0); } }while(cord<=6); } 调试心得及收获 其他所想到的
本文档为【栈和队列实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_981362
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:4
分类:工学
上传时间:2012-10-26
浏览量:67