- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法分析lcture4(栈)
2003-8-25 Lecture notes Stacks(栈) 栈是只允许在同一端进行插入和删除运算的线性表。允许插入和删除的那一端称为栈顶,另一端为栈底。若有栈 S = (s0,s1,……sn-1) 则s0为栈底结点,sn-1为栈顶结点。 栈的结点插入为进栈 栈的结点删除为出栈 栈具有后进先出(LIFO)的特性 Array-Based Stacks(顺序栈) 可以用顺序存储线性表来表示栈,为了指明当前执行插入和删除运算的栈顶位置,需要一个游标变量top(习惯称为栈顶指针),top指出栈顶表元在数组中的下标。始终指向待插入元素的位置。 top是下一次进栈时,进栈表元要存入的数组元素下标。当栈为空时,top=0;栈满时,top=MAXN(数组元素个数),如图中的(b)和(c)。 进栈: 首先把进栈表元存入以top为下标的数组元素中,然后top加1,使top变为下一次进栈表元在数组中的下标。 出栈: 首先执行top减1,然后把以top为下标的栈顶表元送到接受出栈表元的变量中。同样限制在栈空时,不能再出栈;在栈满时,不能再入栈。 Array-based stack class implementation(顺序栈类的实现) //Array-based stack class implementation Template class Elem class AStack:public StackElem { private: int size;//Maximum size of stack int top;//Index for top element //Array holding stack elements Elem *listArray; public: AStack(int sz=DefaultListSize) {//Constructor size = sz; top = 0; listArray = new Elem[sz]; } //Destructor ~AStack() { delete [] listArray; } void clear() { top = 0; } bool push(const Elem item) { if(top == size) return false;//Stack is full else { listArray[top++] = item;return true; } } bool pop(Elem it)//Pop top element { if (top == 0) return false; else { it = listArray[--top]; return true; } } bool topvalue(Elem it) const {//Return top element if (top == 0) return false; else { it = listArray[top-1]; return true; } } int length() const {return top;} }; An array-based stack storing variable-length strings. 每个位置存储一个字符或一个整数,该整数说明栈中位于其左边的字符串长度。 Linked Stacks(链式栈) 即用链表来实现栈。 链表的第一个表元是栈顶结点,链表的末尾表元是栈底结点。 链表的首表元指针就是栈顶指针top,top为NULL的空链表是空栈。 链栈则没有上溢的限制,它就象是一条一头固定的链子,可以在活动的一头自由地增加链环(结点)而不会溢出,链栈不需要在头部附加头结点,因为栈都是在头部进行操作的,如果加了头结点,等于要在头结点之后的结点进行操作,反而使算法更复杂,所以只要有链表的头指针就可以了。 Linked stack class implementation //Link list-based stack implementation
您可能关注的文档
最近下载
- GB 50487-2008 水利水电工程地质勘察规范 (2022年版) .docx VIP
- 【低空经济】低空经济教学课程设计方案.docx
- 2025至2030中国冷链物流行业运营效率与成本控制研究报告.docx
- 2020年《毛泽东思想和中国特色社会主义理论体系概论》考试试卷及答案(一).doc VIP
- 2025入团积极分子考试题库(含答案).docx VIP
- 2021年模拟试题版10月自学考试12656毛泽东思想和中国特色社会主义理论体系概论历年模拟试题.doc VIP
- (2025)廊坊市入团积极分子考试题库(含答案).docx VIP
- 2025至2030中国冷链物流无人机配送网络建设与运营成本测算研究报告.docx
- 晶源微一级代理商CSC2313F深圳恒锐丰科技.pdf VIP
- 2024北森整理题库(言语理解、资料分析、图形推理.).docx VIP
有哪些信誉好的足球投注网站
文档评论(0)