C语言《栈》.ppt
《C语言《栈》.ppt》由会员分享,可在线阅读,更多相关《C语言《栈》.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、栈栈本次课程内容u掌握栈的定义和原理u掌握顺序栈的基本操作。u了解链式栈的基本操作。u掌握栈的应用(重点、难点)(重点、难点)(重点、难点)(重点、难点)一、栈的定义栈栈:只能在表的一端进行插入和删除操作的线性只能在表的一端进行插入和删除操作的线性表。表。栈顶栈顶(top)(top):允许插入和删除的一端。:允许插入和删除的一端。栈底栈底(bottom)(bottom):不允许插入和删除的另一端。:不允许插入和删除的另一端。空栈空栈:不含元素的空表。:不含元素的空表。1.1 栈的特点a1a2a3入栈出栈栈底插入:入栈、进栈、压栈删除:出栈、弹栈u特点特点先进后出(先进后出(FILO)后进先出(
2、后进先出(LIFO)1.2 顺序栈top=0123450栈空栈顶指针top,指向实际栈顶后的空位置,初值为0进栈:top加1top123450进栈Atop出栈栈满BCDEF设数组大小为Mtop=0,栈空,此时出栈,则下溢(underflow)top=M,栈满,此时入栈,则上溢(overflow)出栈:top减1toptoptoptoptop123450ABCDEFtoptoptoptoptoptop栈空实现:一维数组sM1.2.1 顺序栈的类型定义#define MAX 100/*顺序栈最大容量*/typedef int DataTypetypedef struct DataType data
3、MAX;int top;SeqStack;SeqStack*s;1.2.2 顺序栈的置空1、置空栈 void initstack(seqstack*s)stop=-1;2、判断栈空 int stackempty(seqstack*s)return(stop=-1);1.2.3 栈满3、判断栈满 int stackfull(seqstack *s)return(stop=stacksize-1);1.2.4 顺序栈的入栈4、入栈 void push(seqstack *s,datatype x)if(stackfull(s)error(“stack overflow”);sdata+stop=x
4、;1.2.5 顺序栈的出栈5、出栈viod pops(SeqStack*s)if(stackemptys(&s)printf(underflown);elses-top-;1.2.6 取栈顶元素6、取栈顶元素 Datatype stacktop(seqstack *s)if(stackempty(s)error(“stack is empty”);return sdatastop;1.2.7 代码演示1u用顺序栈实现010元素的入栈和出栈演示代码演示23_1栈顶栈顶 .topdata link栈底l结点定义typedef struct node int data;struct node *li
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言
限制150内