- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构栈和队列C语言实现精选
数学与信息技术学院2016~2017(下)学年
计科专业2015级《数据结构》实验报告 4
学号:2015201018 姓名:汪继超
实验名称 栈的应用 完成时间 2017.05.03 一.实验目的和要求:
掌握栈和队列的概念及其两种数据结构的特点,懂得在什么样的问题中应用利用哪种结构。
熟练掌握在两种存储结构上实现栈的基本运算,特别注意栈满及栈空的条件及它们的描述方法。掌握两个顺序栈共享存储空间的概念。
熟练掌握循环队列和链队列的基本运算,特别注意队满和队空的描述方法。
加强编辑与调试C语言程序的能力。 二.实验原理 栈和队列是两种特殊的线性表。栈是限定只能在表的一端进行插入和删除的线性表,它又称为“后进先出”表;队列则是限定只能在表的一端进行插入,在表的另一端进行删除的线性表,它又称为“先进先出”表。由于栈和队列都是线性表的一种特例,所以它们都可以使用顺序存储结构和链式存储结构,栈的顺序存储结构称为顺序栈,栈的链式存储结构称为链栈;而队列的顺序存储结构称为顺序队列,队列的链式存储结构称为链队。顺序存储结构可用一维数组来实现,而链式存储结构可用指针来实现。 三.实验内容 假设称正读和反读都相同的字符序列为“回文”,试写一个算法判别读入的一个以”@”为结束符的字符序列是否是“回文”。 实验过程:
/*注:此程序为栈的操作实现与应用*/
#includestdio.h
#includestdlib.h
#includeconio.h
#includemalloc.h
#includewindows.h
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int SElemType;
typedef int QElemType;
/*栈的存储结构*/
typedef struct{
SElemType *base; /*栈低指针*/
SElemType *top; /*栈顶指针*/
int stacksize; /*栈当前已分配的所有空间,不是已使用的空间长度*/
}SqStack;
/*start***************队列的存储结构*********************/
typedef struct QNode{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
/****************队列的存储结构********************end*/
/*函数声明*/
SElemType GetTop(SqStack *S);
void Push(SqStack *S,SElemType e);
bool SEmpty(SqStack *S);
SElemType Pop(SqStack *S);
void main();
//括号匹配-------------------------------------------------------start
void match(SqStack *S)
{
char str[20];
int i=0,flag;
fflush(stdin);
printf(\n Please enter a string: );
scanf(%s,str);
while(str[i]!=\0flag!=0)
{
switch(str[i])
{
case (:
Push(S,();
break;
case ):
if(*(S-top-1)==()
{
flag=1;
Pop(S);
}
else flag=0;
break;
case [:
Push(S,[);
break;
case ]:
if(*(S-top-1)==[)
{
flag=1;
Pop(S);
}
else flag=0;
break;
case {:
Push(S,{);
break;
case }:
if(*(S-top-1)=={)
{
flag=1;
Pop(S);
}
else flag=0;
break;
default :flag=0;break;
}
i++;
}
if((flag==1)(SEmpty(S)==0))
{
您可能关注的文档
- 数学:27.2.3《切线长定理》课件华师版九年级下精选.ppt
- 数学:25.1《平移变换》课件(北京课改版九年级下)精选.ppt
- 数学:4.1-第1课时《几何图形》课件(人教版七年级上)精选.ppt
- 数学:24.2《圆的切线》课件(北京课改版九年级下)精选.ppt
- 数学:3.4《第三章复习》课件(浙教版七年级下)精选.ppt
- 数学:4.2《摸到红球的概率》-课件(北师大版-九年级数学)精选.ppt
- 数学:23.1《图形的旋转》(第4课时)课件(人教新课标九年级上)精选.ppt
- 数学:5.1《认识三角形》课件(北师大版七年级下)精选.ppt
- 数学:4.1-第2课时《点、线、面、体》课件(人教版七年级上)精选.ppt
- 数学:7.6《第七章复习》课件(北京课改版七年级下)精选.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
文档评论(0)