安徽农业大学计算机科学与技术课件.ppt

上传人:99****p 文档编号:1584794 上传时间:2019-03-06 格式:PPT 页数:42 大小:1.01MB
下载 相关 举报
安徽农业大学计算机科学与技术课件.ppt_第1页
第1页 / 共42页
安徽农业大学计算机科学与技术课件.ppt_第2页
第2页 / 共42页
安徽农业大学计算机科学与技术课件.ppt_第3页
第3页 / 共42页
安徽农业大学计算机科学与技术课件.ppt_第4页
第4页 / 共42页
安徽农业大学计算机科学与技术课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、* 栈* 栈的应用* 队列* 队列的应用3.1 栈栈3.1.1 栈的定义及基本运算栈 (Stack)是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶 (Top),另一端为栈底 (Bottom)。当表中没有元素时称为空栈。假设栈 S=(a1, a2, a3, an),则 a1称为栈底元素, an为栈顶元素。栈中元素按 a1, a2, a3, an的次序进栈,退栈的第一个元素应为栈顶元素。即,栈的修改是按后进先出的原则进行的。因此,栈称为后进先出表( LIFO) 。3.1.2 顺序栈由于栈是运算受限的线性表,因此线性表的存储结构对栈也适应。栈的顺序存储结构简称为顺序栈,它

2、是运算受限的线性表。因此,可用数组来实现顺序栈。因为栈底位置是固定不变的,所以可以将栈底位置设置在数组的两端的任何一个端点;栈顶位置是随着进栈和退栈操作而变化的,故需用一个整型变量 top来指示当前栈顶的位置,通常称 top为栈顶指针。因此,顺序栈的类型定义只需将顺序表的类型定义中的长度属性改为 top即可 。顺序栈的类型定义如下:# define StackSize 100typedef char datatype;typedef struct datatype datastacksize;int top;seqstack; top6 5 4 3 2 1 0-1例、 一叠书或一叠盘子。栈的抽

3、象数据类型的定义如下:a na n-1a2a1栈顶栈底栈 s=(a1,a2, ,an)设 S是 SeqStack类型的指针变量。若栈底位置在向量的低端,即 sdata0是栈底元素,那么栈顶指针 stop是正向增加的,即进栈时需将 stop加 1,退栈时需将 stop 减 1。因此, stoptop =stacksize-1表示栈满。当栈满时再做进栈运算必定产生空间溢出,简称 “上溢 ”;当栈空时再做退栈运算也将产生溢出,简称 “下溢 ”。上溢是一种出错状态,应该设法避免之;下溢则可能是正常现象,因为栈在程序中使用时,其初态或终态都是空栈,所以下溢常常用来作为程序控制转移的条件。1、置空栈、置空栈void initstack ( seqstack *s )s top = 0;2、判断栈空、判断栈空int stackempty ( seqstack *s )return ( s top = 0 );3、判断栈满、判断栈满int stackfull ( seqstack *s )return ( s top = stacksize - 1 );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。