- 3
- 0
- 约4.51千字
- 约 35页
- 2017-06-07 发布于湖北
- 举报
数据结构(Java)-第3章剖析
NEXT Neusoft 基本内容 1.栈的定义和运算 第3章 栈(Stack)和队列 (Queue) 2.栈的存储和实现 3.队列的定义和运算?? 4.队列的顺序存储结构 5.队列的链式存储结构? 6.栈和队列的项目实践 ? 1、栈的定义 栈(Stack)是一种特殊的线性表,它限定其中的元素只允许在线性表的一端进行插入和删除操作。允许操作的一端称为栈顶(top),不允许操作的另一端称为栈底(bottom)。 一.栈的定义和运算 2、栈的运算 栈的基本运算主要有以下几种: (1)创建栈:initiate(s) 初始条件:栈不存在 操作结果:构造一个空栈s (2)判栈空:isEmpty() 初始条件:栈已存在 操作结果:若栈为空栈,返回true,否则返回false。 (3)判栈满:isFull() 初始条件:栈已存在 操作结果:若栈为满栈,返回true,否则返回false。 (4)进栈:push(x) 初始条件:栈已存在且未满 操作结果:插入一个新元素x进栈,并使栈顶指针指向它。 (5)出栈:pop() 初始条件:栈已存在且非空 操作结果:删除栈顶元素,并返回其值。 (6)取栈顶元素:peek() 初始条件:栈已存在且非空 操作结果:返回栈顶元素,这一操作并不改变栈的当前状态。 栈的抽象数据类型用Java接口描述如下: /* * 栈接口 */ public interface Stack { boolean isEmpty(); boolean isFull(); boolean push(Object element); Object pop(); Object peek(); } 二、栈的存储和实现 1、顺序栈 采用顺序存储结构实现的栈简称为顺序栈,它利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设栈顶指针top指示栈顶元素的位置。下图演示了从一个空栈开始,在依次执行一系列入栈、出栈操作的过程中,顺序栈中数据元素的变化。 A.进栈操作 进栈操作是在栈顶位置插入一个新元素element,其基本步骤如下: (1)判断待插入的新元素引用是否为null,如果是则算法结束并返回false,表示进栈失败。否则继续执行第(2)步; (2)判顺序栈是否已满,如果是如果是则算法结束并返回false,表示进栈失败。否则继续执行第(3)步; (3)栈顶指针top加1; (4)将新元素element存入top所指向的位置,使其成为新的栈顶元素。进栈成功,算法结束并返回true。 B.出栈操作 出栈操作是将栈顶元素从栈中移去,并返回其值。其基本步骤如下: (1)判顺序栈是否为空,如果是则算法结束并返回null,表示出栈失败。否则继续执行第(2)步; (2)栈顶指针top减1; (3)返回原来的栈顶元素,算法结束。 /* * 顺序栈 */ public class SeqStack implements Stack { final int MAX_STACK=100;//栈的最大容量 private Object value[];//数组value用来存储栈的元素 private int top;//栈顶指针,其值为栈顶元素在数组中的下标 public SeqStack() {//构造顺序栈 value = new Object[MAX_STACK]; top = -1;//初始状态,空栈 } public boolean isEmpty(){//判断顺序栈是否为空 return top==-1; } public boolean isFull(){//判断顺序栈是否已满 return top==MAX_STACK-1; } public boolean push(Object element){//元素element入栈 if(element==null) return false; if(isFull()) return false; top++; value[top]=element; return true; } public Object pop(){//出栈,栈顶指针下移 if(!isEmpty()) return value[top--]; else return null; } public Object peek(){//读取栈顶元素 if(!isEmpty()) return value[top]; else return null; } } 2、链栈 采用链式存储结构实现的栈简称为链栈。链栈的容量
您可能关注的文档
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)