- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈和队列
栈和队列是常用的数据结构它和线性表的区别在于:
逻辑结构和存储结构与线性表相同。
操作集合是线性表的操作集合的子集,即是操作受限。
栈(stack)
定义:栈是特殊的线性表,仅在表的一端进行插入或删除操作
栈底
栈顶
push
pop
设栈 S=( a1, a2, a3 ai, an),则a1为栈底元素, an为栈顶元素,栈的修改只能在栈顶进行,是按后进先出的原则进行的,因此栈又称为后进先出的线性表(Last In First Out,LIFO)。
栈的基本运算有五种:
SETNULL(S):初始化栈。
EMPTY(S);判断是否为空栈。
PUSH(S,x ):进栈操作,即在栈顶插入元素x。
POP(S):出栈操作,即删除栈顶元素。
TOP(S):访问栈顶元素an 。
栈:采用顺序存储结构-顺序栈
采用链式存储结构-链栈
栈(stack)
1. 顺序栈:利用一组地址连续的存储单元依次存放从栈底到栈顶的元素。
顺序栈的C语言描述:
typedef struct {
elemtype data[Maxnum];
int top;
} stacktype;
top=0 A
top=-1 栈空
top=0 插入A元素
top=4 栈满
top=4 E
D
C
B
A
top=2 C
B
A
注意:Maxnum表示顺序栈的最大长度,
top 和顺序表中num的含义不一致:
num为表中实际元素的个数;
top 为栈中栈顶元素的数组下标值。
top=-1,为空栈;此时若进行出栈操作,发生下溢(underflow)
top=m-1,表示栈满;此时若进行进栈操作,发生上溢(overflow)
假定定义一个数组data[5] 来表示一个顺序栈。
4
3
2
1
0
算法一、初始化栈
使栈顶指针为一个无效值。C 语言中将此值定义为-1。
算法二、进栈操作PUSH
设栈 S=( a1, a2, a3 ai, an), PUSH(S,x)的含义是:通过操作使栈 S=( a1, a2, a3 ai, an,x),但是插入之前要检测是否栈满。
步骤:
1. 若栈满的话,返回 “ false ”,程序结束。
2. 栈顶指示器的值加1。(top + +)
3. 将 x 放入栈顶指示器指示的存储单元。
4. 返回“true”,程序结束。
void initiatest(stacktype *s)
{ s-top=-1;
}
#define true 1
#define false 0
int pushs(stacktype *s, elemtype x)
{ if(s-top=MAXNUM-1) /* 栈是否满?*/
return(false);
else
{s-top++; /* 栈顶位置修改*/
s-stack[s-top]=x; /* 新栈顶插入元素*/
return(true);
}
}
算法二、进栈操作PUSH
步骤:
1.若栈空的话,返回“NIL”,程序结束。
2.栈顶指示器的值减1。(top- -)
3.返回删除的栈顶元素。
elemtype pops(stacktype *s)
{ if(s-top0) /* 栈是否空?*/
return(NIL);
else
{s-top--; /* 栈顶位置修改*/
return( s-stack[s-top+1]); /* 返回删除的元素*/
}
}
算法三、出栈操作
您可能关注的文档
最近下载
- 肿瘤电场治疗仪注册技术审评报告049.pdf VIP
- 无涯教程网-ASP.Net-Core教程完整离线版.pdf VIP
- 第7课《实践出真知》第2框《坚持实践第一的观点》同步课堂精品课件-【中职专用】《哲学与人生》.pptx VIP
- 组织行为学课件(40学时).pdf VIP
- 新版医用电气安全GB9706.1-2020标准解读.pptx VIP
- 班级学期工作总结PPT.pptx VIP
- 党的二十届三中全会精神解读与高质量发展答案.docx VIP
- 设计一带式输送机传动装置.doc VIP
- 2025年度医院口腔科工作总结及2026年工作计划.docx VIP
- 医院口腔科年度工作总结.docx VIP
原创力文档


文档评论(0)