第8章-栈和队列.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第8章栈和队列第8章栈和队列8.1栈8.2队列习题8.1栈假设栈S=(a1,a2,...,an),可以形象描述为右图所示形式:a1是栈底元素;an是栈顶元素;入栈指插入数据元素;出栈指删除数据元素;栈的常用运算置空栈—SetNull(S),完成对栈的初始化。判断栈空—Empty(S),若栈S为空则返回真,否则返回假。进栈——Push(S,e),在栈S的栈顶插入数据元素e。出栈—Pop(S),删除栈S的栈顶数据元素,并将数据元素返回。取栈顶元素—GetTop(S),取栈S的栈顶数据元素,并把数据元素返回。该操作完成后,栈的状态不变。栈的存储结构有两种:顺序存储结构

采用顺序表存储的栈称为顺序栈。链式存储结构。

采用单链表存储的栈称为链栈。8.1.1栈的顺序存储表示——顺序栈定义栈的顺序存储结构定义为:

typedefstruct

{ datatypeelements[maxsize];

intTop;

}seqstack;其中:maxsize是栈的容量。

datatype是栈中数据元素的数据类型。

Top指示当前栈顶位置,空栈Top值为-1。

栈底位置为0。顺序栈运算的实现栈初始化voidInitS(seqstack*S){S=(seqstack*)malloc(sizeof(seqstack));S-Top=-1;}置空栈voidSetNuLLS(seqstack*S){S-Top=-1;}判断栈是否为空

intEmptyS(seqstack*s)

{if(S-Top=0)return(0);//栈非空,返回0

elsereturn(1);//栈空,返回1

}求栈中元素个数

intLengthS(seqstack*S)

{return(S-Top+1);

}进栈

intPushS(seqstack*S,datatypee)

{if(S-Top=maxsize-1)

{print(“StackOverflow”);

return0;

}//上溢

else

{S-Top++;

S-elements[S-Top]=e;

return1;

}

}出栈

intPopS(seqstack*S,datatypee)

{if(EmptyS(S))

{print(“StackUnderflow”);

return0;

}//下溢

else

{e=S-elements[S-Top];

S-Top--;

return1;

}

}取栈顶元素

intGetTopS(seqstack*S,datatypee)

{if(EmptyS(S))

{print(“StackUnderflow”);

return0;

}//下溢

else

{e=S-elements[S-Top];

return1;

}

}8.1.2栈的链式存储结构——链栈定义栈的链式存储结构称为链栈。它是运算受限的单链表,其插入和删除操作仅在表头进行。链栈定义如下:

typedefstructNode

{datatypeelement;

structNode*next;

}linkstack;

linkstack*top;链栈示意图如右图栈顶是top指针,它惟一地确定一个链栈。当top等于NULL时,该链栈为空栈。链栈运算进栈:

voidPushL(linkstack*top,datatypee)

{ linkstack*p;

p=(linkstack*)malloc(sizeof(linkstack));

p-element=e;p-next=top;top=p;

}//链栈不存在上溢的问题出栈:

intPopL(linkstack*top,datatypex)

{ if(top==NULL)

{print(“Stackisunderflow

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档