数据结构(C语言描述)教学课件马秋菊第3章栈队列.pptVIP

  • 1
  • 0
  • 约1.42万字
  • 约 47页
  • 2019-10-08 发布于广东
  • 举报

数据结构(C语言描述)教学课件马秋菊第3章栈队列.ppt

本章学习目标 栈的定义、栈的“后进先出”的操作规则; 栈的顺序和链式存储结构; 队列的定义、队列“先进先出”的操作规则; 队列的顺序和链式存储结构; 栈和队列的典型应用 3.1.2 栈的顺序存储结构及运算实现 栈的顺序存储结构(顺序栈 )是利用利用一批地址连续的存储单元依次存放自栈底到栈顶的数据元素。通常用一维数组来实现栈的顺序存储,数组小下标一端做栈底,设一个栈顶指针top指向栈顶元素,它随着插入和删除而变化。 图(a)是空栈,s.top= -1; 图(b)是A入栈,s.top=0,s.elem [0]= A; 图(c) 是B、C、D、E四个元素依次入栈之后,s.top=4,由于栈已满,若再入栈,则溢出; 图(d)是E、D相继出栈,此时栈中还有3个元素,s.top=2,即栈顶指针指向C元素。 例题:假设有3个元素a,b,c,入栈顺序是a,b,c,则它们的出栈顺序有几种可能? 3.1.3 栈的链式存储结构及运算实现 栈也可以用单链表作为存储结构。一个链栈由它的栈顶指针唯一确定 。假设 top 是StackNode * 类型的变量,则 top 指向栈顶结点,top=NULL时,链栈为空。 ⑸ 取栈顶元素 int GetTop(StackNode *top, ElemType *y) { if ( Emp

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档