- 1
- 0
- 约4.8千字
- 约 30页
- 2019-06-03 发布于广西
- 举报
* * 停车栈可突出栈的后进先出的实际作用 * * 结论:栈具有后进先出(Last In First Out)特性,简称为LIFO线性表 * * * * 栈的顺序存储结构是用一组连续的存储单元依次存放栈中的每个数据元素,并用起始端作为栈底。 * * 图(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个元素 * * 以下几点说明: 1. 对于顺序栈,入栈时,首先判断栈是否满了,栈满的条件为:s-top= =MAXSIZE-1,栈满时,不能入栈; 否则出现空间溢出,引起错误,这种现象称为上溢。 2. 出栈和读栈顶元素操作,先判断栈是否为空,为空时不能操作,否则产生错误。通常栈空时常作为一种控制转移的条件。 * * * * * * 栈 基础知识 栈的定义 一摞书籍、一叠盘子 往手电筒里放电池,取电池.最先放的是最后被取出 铁路调度中用到停车栈 生活中栈的实例 栈的插入和删除操作分别称为进栈和出栈。进栈是将一个数据元素存放在栈顶,出栈是将栈顶元素取出。图中 a1称为栈底元素,an为栈顶元素。 定义:栈(stack)是限定仅在表尾的一端进行插入或删除操作的线性表。允许进行插入或删除操作的一端称为栈顶(top),而另一端称为栈底(bottom)。不含元素的栈称为空栈。 栈的定义及基本运算 a1 a2 an-1 an … 栈顶 (top) 栈底 (bottom) 出栈 进栈 栈底元素 栈顶元素 栈的“上溢”和“下溢” 当栈满时再做进栈运算必定产生空间溢出,简称“上溢”;当栈空时再做退栈运算也将产生溢出,简称“下溢”。上溢是一种出错状态,应该设法避免之;下溢则可能是正常现象,因为栈在程序中使用时,其初态或终态都是空栈,所以下溢常常用来作为程序控制转移的条件。 Init() Destroy(S) Clear(S) Push(S, e) Pop(S, e) IsEmpty(S) Size(S) GetTop(S, e) 栈的主要操作 顺序栈的操作实现 typedef struct{ DataType data[MaxSize]; int top;// top 指示栈顶元//素在顺序栈中的位置(下标) }SeqStack a1 a2 an-1 an … top 栈底 (bottom) 栈底元素 栈顶元素 栈的顺序存储定义 A E s .top 4 3 2 1 0 s .top =-1 (a)空栈 4 3 2 1 0 s .top s .top =0 (b)进栈 s.top 4 3 2 1 0 A B C D s .top =4 (c)栈满 s .top 4 3 2 1 0 s .top =2 (d)出栈 A B C A E ⑴ 置空栈:首先建立栈空间,然后初始化栈顶指针。 SeqStack *Init () { SeqStack *s; s=new SeqStack; s-top= -1; return s; } 顺序栈的基本操作 ⑵ 判空栈 bool IsEmpty(SeqStack *s) { if (s-top== -1) return true; else return false; } 顺序栈的基本操作 ⑶ 入栈 int Push (SeqStack *s,DataType x) { if (s-top==MaxSize-1) return ERROR; //栈满不能入栈 else { s-top++; s-data[s-top]=x; return OK; } } 顺序栈的基本操作 ⑷ 出栈 int Pop (SeqStack *s, DataType *x) { if (IsEmpty ( s ) ) return ERROR; //栈空 else { *x=s-data[s-top]; //栈顶元素存入*x s-top--; return OK; } } 顺序栈的基本操作 ⑸ 取栈顶元素 DataType GetTop(SeqStack *s) { if ( IsEmpty (
您可能关注的文档
最近下载
- ISO IEC 42001 人工智能管理体系白皮书——AI风险治理.docx
- ISO_IEC 42001_2023 人工智能管理体系要求培训课件.pptx VIP
- ISO IEC42001-2023人工智能管理体系培训教材.pptx
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之5:“5领导作用-5.2 人工智能方针”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之13:“7支持-7.5成文信息”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之8:“6策划-6.3 变更的策划”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之16:“10改进”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之10:“7支持-7.2能力”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之17:“8 运行”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- 《ISO∕IEC42024-2025信息技术-人工智能-管理体系》解读和应用指导材料(雷泽佳2024A0).pptx VIP
原创力文档

文档评论(0)