7.3栈与队列的基本操作.ppt
7.3 栈与队列的基本操作 7.3.1 栈 7.3.1 栈 7.3.1 栈 【例7.8】顺序栈类的定义 顺序栈类的定义 7.3.1 栈 7.3.1 栈 7.3.1 栈 7.3.1 栈 7.3.3 队列 7.3.2 队列 7.3.2 队列 顺序表循环队列类的设计 顺序表循环队列类的设计 顺序表循环队列类的设计 顺序表循环队列类的设计 7.3.2 队列 链队类的设计 链队类的设计 第六单元 OBP—动态内存分配与数据结构 * * 栈和队都是限制存取位置的线性表,既可以由顺序表实现,又可以由链表实现。 7. 3. 1 栈 7. 3. 3 队 列 7. 3. 2 栈的应用(选读) 第六单元 OBP—动态内存分配与数据结构 栈的基本概念: 栈是一种线性表,其元素的插入和删除只能在其一端进行。这个端叫做栈顶(top),对应的另一端叫栈底(bottom)。特点: (1)栈中没有任何元素时,称为空栈。 (2)进栈原则—“后来居上”:最先进栈的压在栈底,依次类推,最后进的处于栈顶。 (3)出栈原则—“后进先出” (LIFO:Last In First Out):最后进栈的最先出栈,而最先进栈的最后出栈。 (4)栈的实现方式:顺序表,称顺序栈;链表,称链栈。 栈的基本操作: 设给定栈s=(a0,a1,……,an-1)。进栈时,最先进栈的a0压在最下面,即栈底,an-1在最上面,即栈顶。而出栈时,顺序相反,最后进栈的an-1最先出栈,而最先进栈的a0最后出栈。参见下图的顺序栈: a0 an-2 …… a1 an-1 bottom 压栈 top top top top top 退栈 顺序栈的操作只与top有关,而与bottom无关! 初始top与bottom同指向栈数据区的下一单元,这样会便于判断空栈。 #include cassert //用于诊断 class Stack { int top; //栈顶(下标) DataType *elements; //指向动态建立的栈 int maxSize; //栈最大容纳的元素个数 public: Stack(const int); //构造函数, top= -1 ~Stack(){delete[ ] elements; elements=NULL;} void Push(const DataType ); //压栈, top++ DataType Pop(); //弹出,top-- DataType GetElem(int); //随机取数据,top不变 void MakeEmpty(){top= -1;} //清空栈 bool IsEmpty() const{return top== -1;} //判栈空 bool IsFull() const{return top==maxSize-1;} //判栈满 void PrintStack(); //输出栈内所有数据 }; 顺序栈类: const成员函数, 只能读类的数据成员,而不能修改类成员数据! Stack::Stack(const int maxs=20) { //默认的栈大小的初始值20 maxSize=maxs; top=-1; elements=new DataType [maxSize]; //建立栈空间 assert(elements!=NULL); //假定未悬空,否则分配失败,结束程序 } void Stack::PrintStack(){ for(int i=0;i=top;i++) coutelements[i]\t; coutendl; } void Stack::Push(const DataType data){ assert(!IsFull()); //栈满则退出程序 elements[++top]=data; //栈顶下标先加1,元素再进栈 } DataType Stack::Pop() { assert(!IsEmpty()); //栈已空则不能退栈,退出程序 return elements[top--]; //返回栈顶元素,同时栈顶下标-1 } DataType Stack:GetElem(int i) { assert(i
您可能关注的文档
最近下载
- 珍惜战友情谊 密切内部关系.docx VIP
- PowerFlex 700变频器用户手册(中文).pdf
- 2025年厦门事业编考试真题及答案 .pdf VIP
- 2025年湖南科技大学中国近现代史纲要期末考试模拟题必考题.docx VIP
- 2025年宁夏大学微生物学专业《微生物学》期末试卷及答案.docx VIP
- 宁夏大学土壤学笔记.docx VIP
- 2025年山东劳动职业技术学院单招语文测试模拟题库附答案.docx VIP
- 2025(人教2019版)化学必修第二册 第五章单元解读课件.pptx
- 厦门市同安区事业单位招聘考试题目及答案2025.docx VIP
- 建筑工程论文8000字.pdf VIP
原创力文档

文档评论(0)