第三章栈、队列和递归A课件.ppt

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

;特殊线性表;3.1栈(Stack) ;3.1 栈;注: 栈的运算规则   只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。 入栈:插入元素到栈顶(即表尾)的操作。 出栈:从栈顶(即表尾)删除最后一个元素的操作。 问:栈与一般线性表有什么不同? 一般线性表 (堆)栈 逻辑结构:一对一 逻辑结构:一对一 存储结构:顺序表、链表 存储结构:顺序栈、链栈 运算规则:随机存取    运算规则:后进先出 (LIFO)    入栈操作演示      出栈操作演示;a1;a1;思考题1:一个栈的输入序列为123,若在入栈的过程中允许出栈,且每个元素只允许进一次栈,则可能得到的出栈序列有哪些?;思考题2:;栈的抽象数据类型定义参见P86-87 2、栈的存储结构 顺序栈、链式栈 (1)顺序栈——栈的顺序存储结构(重点) ;进栈核心语句:top++; S[top]=a1;; 0 1 2 3 4 5 6 7 8;动态栈类的定义: template class type //定义模板类DSeqStack class DSeqStack { public: DSeqStack( int size) ; //构造函数,栈的初始化  ~DSeqStack( ){delete [] S;} //析构函数 void Push(const type item); //将元素item入栈 type Pop( ); //将栈顶元素弹出 type GetTop( ); //取栈顶元素(并不删除)  int Empty( )const{return top==-1;}    //判断栈是否为空  int full()const{return top==MaxSize-1;}    //为满则返回1,否则返回0  void clear(){top=-1;}//清空栈 private: type *S; //存放栈元素的数组起始地址   int top; //栈顶指针,指示栈顶元素在数组中的下标 int MaxSize; //栈最大可容纳元素个数 };;顺序栈的构造函数算法实现;顺序栈的入栈操作算法实现;出栈核心语句: Item=S[top]; top--;;顺序栈的出栈操作算法实现;其它类型栈举例:如两栈共享空间 ;栈1的栈底:固定靠下标为0的这一端; 栈2的栈底:固定靠下标为MaxSize-1的这一端。 top1和top2分别为栈1和栈2的栈顶指针; MaxSize:整个数组空间的大小(图中用S表示);;栈1为空条件:top1== -1 栈2为空条件??top2== MaxSize;a1 a2 … … ai;(2)链式栈——栈的链式存储结构;链栈类的定义: template class type class LinkStack;//声明 template class type class Node { friend class LinkStacktype; private: type data; Nodetype *next; //此处T也可以省略 }; template class type class LinkStack { public: LinkStack( ); //构造函数,置空链栈 ~LinkStack( ); //析构函数,释放链栈中各结点的存储空间 void Push(type item); //将元素item入栈 type Pop( ); //将栈顶元素出栈 type GetTop( ); //取栈顶元素(并不删除) bool Empty( ); //判断链栈是否为空栈 private: Nodetype *top; //栈顶指针即链栈的头指针 };;链栈的构造函数算法实现;算法实现: templateclass type void inkStacktype::Push(ty

文档评论(0)

gm8099 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档