- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 限定性线性表—栈和队列 ;3.1 栈 ;设S=(a1,a2,…,an)表示栈,则a1为栈底元素,an 为栈顶元素。栈是一种后进先出(Last In First Out)的线性表(简称LIFO结构)。;栈只能对栈顶元素进行插入和删除操作。
例:若输入 A,B,C,D。
可能的输出序列为D,A,C,B (错)、B,A,C,D(对)、
D,C,A,B(错)、B,C,A,D(对)、A,C,B,D (对); ADT Stack{
数据元素: 可以是任意类型的数据,但必须属于同一个数据对象。
数据关系: 栈中数据元素之间是线性关系。
基本操作:
(1) InitStack(S)
初始条件: S为未初始化的栈。
操作结果: 将S初始化为空栈。
(2) ClearStack(S)
初始条件: 栈S已经存在。
操作结果: 将栈S置成空栈。 ; (3) StackEmpty(S)
初始条件:栈S已经存在。
操作结果:若S为空栈,则函数值为TRUE,否则FALSE
(4) Push(S,e)
初始条件:栈S已经存在。
操作结果:在S的顶部插入(亦称压入)元素e;; (5) Pop(S, e)
初始条件:栈S已经存在。
操作结果:删除(亦称弹出)栈S的顶部元素,并用e带回该值。
(6) GetTop(S, e)
初始条件: 栈S已经存在。
操作结果:取栈S的顶部元素。与Pop(S, e)不同之处在于GetTop(S,e)不改变栈顶的位置。 ;3.1.2 栈的表示和实现 ;#define TRUE 1
#define FALSE 0
typedef struct {
SElemType * base;
SElemType *top;
int stacksize; //栈可使用的最大容量
} SqStack;
按初始分配量进行第一次存储分配,base为栈底指针,始终指向栈底。top为栈顶指针,初值指向栈底,每插入一个元素,top增1;每删除一个元素,top减1,top始终在栈顶元素的下一个位置上。 ;图3.2 顺序栈中的进栈和出栈 ;顺序栈基本操作的实现如下:
(1) 初始化。 ;(2) 取栈顶元素
Status GetTop(SqStack S, SElemType e){
if (S.top = = S.base) return ERROR;
e= * (S.top-1);
return OK;
};(3) 入栈。
Status 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;
return OK;
} ;(4) 出栈
Status Pop(SqStack S, SelemType e){
if( S.top= =S.base) return ERROR;
e=*--S.top;
return OK;
}; 在栈的共享技术中最常用的是两个栈的共享技术:它主要利用了栈“栈底位置不变,而栈顶位置动态变化”的特性。首先为两个栈申请一个共享的一维数组空间S[M],将两个栈的栈底分别放在一维数组的两端,分别是0、M-1。由于两个栈顶动态变化,这样可以形成互补,使得每个栈可用的最大空间与实际使用的需求有关。由此可见,两栈共享比两个栈分别申请M/2的空间利用率高。;图3.3 共享栈 ;2. 链栈 ;3.2 栈的应用举例 ;如(1348)10=(2504)8
;void conversion()
{
InitStack(S);
scanf(“%d”,N);
while(N)
{
Push(s, N %
您可能关注的文档
最近下载
- 公司章程英文版 Company Articles of Association.doc VIP
- 英文版公司章程ARTICLES OF ASSOCIATION OF.docx VIP
- 从《倾城之恋》的白流苏透析张爱玲小说中的女性形象.docx
- 档案搬迁服务 投标方案.doc
- 日本 东要介--透析液纯净化.cn.pdf VIP
- mpr300电机保护器使用使用说明书.doc
- 2025年乡村振兴战略下县域经济产业链优化研究报告.docx VIP
- 胜利仪器VICTOR 240.240S.270.270S双通道系列示波器用户手册.pdf VIP
- 智能浇灌系统的策划书3篇.pdf VIP
- 新HSK3级词汇最新分析和总结.pdf VIP
文档评论(0)