- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
栈和队列的基本操作的实现
封面:
安徽大学
网络工程
栈和队列的基本操作的实现
______2010\4\12
【实验目的】
理解并掌握栈和队列的逻辑结构和存储结构;
理解栈和队列的相关基本运算;
编程对相关算法进行验证。
【实验内容】
(一)分别在顺序和链式存储结构上实现栈的以下操作(含初始化,入栈,出栈,取栈顶元素等):
构造一个栈S,将构造好的栈输出;
在第1步所构造的栈S中将元素e 入栈,并将更新后的栈S输出;
在第2步更新后所得到的栈S中将栈顶元素出栈,用变量e返回该元素,并将更新后的栈S输出。
(二)分别在链队列和循环队列上实现以下操作(初始化,入队,出队,取队头元素等):
1.构造一个队列Q,将构造好的队列输出;
2.在第1步所构造的队列Q中将元素e入队,并将更新后的队列Q输出;
3.在第2步更新后所得到的队列Q中将队头元素出队,用变量e返回该元素,并将更新后的队列Q输出。
【要求】
栈和队列中的元素要从终端输入;
具体的输入和输出格式不限;
算法要具有较好的健壮性,对运行过程中的错误操作要做适当处理。
三、实验步骤
1.本实验用到的数据结构
(1)逻辑结构:线性结构
(2)存储结构:程序一、四(顺序存储结构);
程序二、三(链式存储结构);
2.各程序的功能和算法设计思想
程序一:顺序栈
# include stdio.h
# include malloc.h
# include process.h
#define STACKINITISIZE 100
# define STACKINCREMENT 10
# define OK 1
# define ERROR 0
# define OVERFLOW -2
typedef int SElemtype;
typedef int status;
typedef struct {
SElemtype *base;
SElemtype *top;
int stacksize;
}sqstack;
void Initstack (sqstack *s) {
(*s).base = (SElemtype *)malloc(STACKINITISIZE * sizeof (SElemtype));
if(!(*s).base) exit(OVERFLOW);
(*s).top = (*s).base;
(*s).stacksize = STACKINITISIZE;
}
void push ( sqstack *s , SElemtype e ){
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 ++ = e;
}
status Gettop (sqstack s ) {
int e;
if (s.top ==s.base )
return ERROR;
e=*(s.top-1);
printf (栈顶元素是%d\n,e);
return OK;
}
status pop ( sqstack *s ) {
int f;
if ( (*s).top==(*s).base) return ERROR;
f = *(--(*s).top);
printf(出栈元素是%d\n,f);
return OK;
}
void stackTraverse(sqstack s ){
SElemtype * p =s.base;
while (s.topp)
printf (%d ,*p++);
printf(\n);
}
void main(){
int h,k,e,i;
sqstack la;
printf (构建一个空栈\n);
Initstack (la);
printf(请输入栈内元素的个数\n);
scanf (%d,k);
printf(请输入%d个元素\n,k);
for (i=0;ik;i++){
scanf (%d,e);
push (la,e);
}
print
您可能关注的文档
- 林黛玉进贾府2013.ppt
- 林黛玉进贾府(2013.12).ppt
- 林黛玉进贾府 SLJ.ppt
- 林黛玉进贾府(精_上课用).ppt
- 林黛玉进贾府gl.ppt
- 林黛玉进贾府(上).ppt
- 林黛玉!!!!!!!.ppt
- 林黛玉进贾府·第二课时·罗.ppt
- 林黛玉进贾府3宝黛初会.ppt
- 林黛玉进贾府_long.ppt
- 部编版历史九年级上册第19课 法国大革命和拿破仑帝国 (共28张PPT).ppt
- 部编版历史九年级上册第19课 法国大革命和拿破仑帝国(共37张PPT).ppt
- 部编版历史七年级下册 第8课 金与南宋的对峙 课件(共34张PPT).ppt
- Module 3 Life now and then综合能力检测(含答案,无听力部分)2025年外研版英语九年级下册.docx
- 第1课殖民地人民的反抗斗争 课件(共28张PPT).ppt
- 第5课 安史之乱与唐朝衰亡 课件(共28张PPT).ppt
- 第2课 从“贞观之治”到“开元盛世”.ppt
- Module 5 Look after yourself 综合能力检测(含答案,无听力部分)2025年外研版英语九年级下册.docx
- 2024版军人离婚申请书编写指南与范文精选.docx
- 2025年镍氢电池行业深度分析及“十三五”发展规划指导报告.docx
最近下载
- 中外建筑史第二讲古代建筑发展概况.ppt
- 一种用于汽车配件的简单式衣帽钩.pdf VIP
- 铸牢中华民族共同体意识下民族院校少数民族语言课程思政路径探索与实践.docx VIP
- 矿井物探及水害防治技术及装备.ppt
- 2023年八年级信息技术考试试题及答案-信息8年级考试.docx
- 中考必会词汇3000(默写).pdf
- 教学能力比赛100个现场决赛答辩题库及答辩要点!.docx VIP
- 【道法】2024-2025学年七年级下七下第6课时 品味美好情感(课件).pptx VIP
- 开化乡(镇、街道)、村(社区)、自然村一览表.doc
- SMTC 5 100 001 金属表面保护要求The Requirements for Surface Protection of Metal Parts(111201).pdf VIP
文档评论(0)