- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构栈和队列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
- 专科生的职业谋略-打造适合自己的职业规划.pptx
- 2025年冀教版9年级下册期末试题含完整答案详解【考点梳理】.docx
- 专科研究成果展示-学术贡献与未来展望.pptx
- 强化训练-冀教版9年级下册期末试题附参考答案详解【实用】.docx
- 2025年四川新网银行校园招聘笔试备考题库及答案解析.docx
- 当代青年与社会责任的班会.pptx
- 2024-2025学年北师大版9年级数学上册期末测试卷附答案详解AB卷.docx
- 2024-2025学年度京改版数学8年级上册期末试卷含答案详解AB卷.docx
- 基础强化冀教版七年级下册期末试卷及参考答案详解【最新】.docx
- 2015年四川省资阳市中考数学真题【含答案、解析】.docx
最近下载
- 2025年出境竹木草制品台帐表单各种表格.pdf VIP
- DB34T 4822-2024 地下水监测井建设技术规范.pdf
- 中国热射病诊断与治疗指南(2025版).pptx
- 第19课社会生活的变迁(课件)-八年级历史下册教学无忧备课课件(统编版).pptx VIP
- 铁路预应力混凝土桥梁智能张拉与压浆施工技术规程.pdf VIP
- DL∕T 1685-2017 油浸式变压器(电抗器)状态评价导则.pdf
- 2025春人教鄂教版(2024)小学科学一年级下册《纸制品》教案及反思.docx VIP
- 建设工程标准化协会标准:TCECS 717-2020 城镇排水管道非开挖修复工程施工及验收规程.pdf
- XX县压缩天然气城市气化工程初步设计说明书.doc
- 调 式 中 的 音 程.pptx VIP
文档评论(0)