- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 栈和列队
班级:计算机154
时间:2016.11.03
1.实验目的:
掌握栈这种数据结构特性及其主要储存结构,并能在实际工作中灵活运用。
掌握队列这种数据结构特性及其主要储存结构,并能在实际工作中灵活运用。
了解和掌握递归程序设计的基本原理和方法。
2. 实例
(1) 栈的顺序储存结构及实现
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct {
ElemType elem[MAXSIZE];
int top;
}SqStack;
void OutStack(SqStack p);
void InitStack(SqStack *p);
void Push(SqStack *p,ElemType x);
ElemType Pop(SqStack *p);
ElemType GetTop(SqStack p);
main()
{
SqStack q;
int i,y,cord;ElemType a;
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-----------------------------\n");
printf("请输入您的选择(1,2,3,4,5)");scanf("%d",&cord);
switch(cord)
{
case 1:{
InitStack(&q);OutStack(q);
}break;
case 2:{
printf("\n请输入要插入的数据 a=");scanf("%d",&a);
Push(&q,a);OutStack(q);
}break;
case 3:{
a=Pop(&q);printf("\n a=%d",a);
OutStack(q);
}break;
case 4:{
y=GetTop(q);printf("\ny=%d",y);
OutStack(q);
}break;
case 5:exit(0);
}
}while(cord<=5);
}
void InitStack(SqStack *p)
原代码中卫MAX
原代码中卫MAX不存在其变量,认为应该为MAXSIZE即可
p->top=0;
}
void Push(SqStack *p,ElemType x)
{
if(p->top<MAXSIZE-1){
p->top=p->top+1;p->elem[p->top]=x;
}
else printf("\n Overflow!");
}
ElemType Pop(SqStack *p)
{
ElemType x;
if(p->top!=0){
x=p->elem[p->top];
p->top=p->top-1;
return(x);
}
else{
printf("\n Unerflow!");
return(-1);
}
}
ElemType GetTop(SqStack p)
{
ElemType x;
if(p.top!=0){
x=p.elem[p.top];
return(x);
}
else{
printf("\n Unerflow!");
return(-1);
}
}
void OutStack(SqStack p)
{
int i,j;
if(p.top==0)printf("\n The Stack is NULL.");
for(i=p.top;i>0;i--)
printf("\n %2d %6d",i,p.elem[i]);
}
运行结果:
(2)队列的链表储存结构及实现
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType ;
typedef struct NodeType
{
ElemType data;
struct NodeType *next;
}NodeType;
typedef struct
{
NodeType *front,*rear;
} L
您可能关注的文档
- 法拉第电磁感应定律典型计算题例题.doc
- 2.12小数除法解决问题第3课时.ppt
- 法拉第电磁感应定律(4.4).ppt
- 第3.2节--谓词逻辑基础.ppt
- 肥料基础知识.docx
- 呼吸道对空气的处理3.ppt
- 油脂工艺实验().docx
- 法拉第笼检验批.doc
- 解决问题的策略——转化(2).ppt
- 7.6--单缝夫琅禾费衍射.ppt
- 基于融合多源数据分析的包围圈式移动车辆视频追踪方法.pdf
- 一种大型双吸式风机降重抗弯转子结构.pdf
- 一种可分离废料和水并将其收集的数控机床夹具.pdf
- 一种服务器固件配置方法、装置、设备及可读介质.pdf
- 营销心理学(第五版及慕课) 课件 模块2 场景主体:消费者心理过程.pptx
- 营销心理学(第五版及慕课) 课件 模块7 场景行为:推销与说服心理效应.pptx
- 营销心理学(第五版及慕课) 课件 模块3 场景主体:消费者购买动机与行为.pptx
- AutoCAD工程制图案例教程(廖晓露) 课件 第7、8章 尺寸标注与编辑、图纸布局与出图.pptx
- AutoCAD工程制图案例教程(廖晓露) 课件 第8、9章 图纸布局与出图、绘制道路交通工程图.pptx
- 营销心理学(第五版及慕课) 课件 模块4 场景主体:消费者群体消费心理.pptx
文档评论(0)