第三章_栈和队列案例
3.1.4 栈的应用
1.
栈是嵌套调用机制的现递归算法
例3.1 判断表达式中圆括号是否匹配
例3.2 使用栈计算表达式的值。
中缀表达式1+2*(3-4)+5
1.将中缀表达式转换为后缀表达式
2.后缀表达式求值
3.2 队列
3.2.1 3.2.2 3.2.3 3.2.4 队列抽象数据类型 顺序队列 链式队列 队列的应用
3.2.2 顺序队列
1.
顺序队列,假溢出
2.顺序循环队列
front=(front+1) % length; rear=(rear+1) % length;
3.顺序循环队列类
public class SeqQueue<E> implements QQueue<E> { private Object value[]; private int front,rear; //队列头尾下标 }
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
1.
第 3章
栈和队列
3.1 栈
3.1.1 3.1.2 3.1.3 3.1.4 栈抽象数据类型 顺序栈 链式栈 栈的应用
3.1.1 栈抽象数据类型
栈(stack)是一种特殊的线性表, 其插入和删除操作只允许在线性表的一端进行。 public interface SStack<E> { boolean isEmpty(); //判断是否空栈 boolean push(E element); //入栈 E pop(); //出栈 E get(); //取栈顶元素值 }
3.1.2 顺序栈
public class SeqStack<E> implements SStack<E> { private Object value[ ]; private int top; //栈顶元素下标 }
3.1.3 链式栈
public class LinkedStack<E> implements SStack<E> { private Node<E> top; }
3.2.3 链式队列
public class LinkedQueue<E> implements QQueue<E> { //链式队列类 private Node<E> front, rear; }
3.2.4 队列的应用
例3.3 求解素数环问题。
素数:质数(prime number)又称素数,有无 限个。一个大于1的自然数,除了1和它本身外, 不能被其他自然数整除(除0以外)的数称之为素 数(质数);否则称为合数。根据算术基本定理, 每一个比1大的整数,要么本身是一个质数,要么 可以写成一系列质数的乘积;而且如果不考虑这些 质数在乘积中的顺序,那么写出来的形式是唯一的 。最小的质数是2。
3.2.1 队列抽象数据类型
队列(queue)是一种特殊的线性表,其插入和删除 操作分别在线性表的两端进行。 public interface QQueue<E> { //队列接口 boolean isEmpty(); //判断队列是否为空 boolean enqueue(E element); //入队 E dequeue(); //出队 }
数据结构与算法设计(Java版)
第1章 绪论 第2章 线性表 第3章 栈与队列 第4 章 串 第5章 数组 第6章 树和二叉树 第7 章 图 第8章 排序
3.1 栈 2. 3.2 队列 • 目的:使用栈或队列求解应用问题。 • 要求:掌握栈和队列抽象数据类型,以及顺 序和链式存储结构实现;理解对于怎 样的应用问题,需要使用栈或队列, 以及怎样使用。 • 重点:栈和队列的设计和应用。 • 难点:栈或队列的使用场合,以及如何使用 栈和队列求解应用问题。
3.2.4 队列的应用
例3.3 求解素数环问题。 素数环: 将从1到n这n个整数围成一个圆环,若 其中任意2个相邻的数字相加,结果均 为素数,那么这个环就成为素数环。 使用顺序表和顺序队列来解素数环问题:
栈和队列及其应用
1.
2.
走迷宫(网络自学,课程设计题目) 骑士游历 (网络自学,课程设计题目)