Java数据结构(二)
——栈
栈是一种特殊的线性表。栈的数据元素以及数据元素的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而栈只允许在固定一段进行插入和删除操作。栈中允许进行插入和删除操作的一段称为栈顶,另一端称为栈底。栈的插入操作通常我们都成为进栈或入栈~~而删除操作通常称为出栈或退栈。
根据栈的定义,每次进栈的数据元素都放在原当前栈顶元素之前而成为新的栈顶元素,每次退栈的数据元素都是当前栈顶元素,这样,最后进入栈的数据元素总是最先退出栈,因此栈也被称为后进后出表。
顺序栈
- package pzw.Stack;
- /**
- * 使用顺序存储结构实现的堆栈
- * @author pzw
- *
- */
- public class SeqStack implements Stack{
- final int defaultSize = 10;//默认构造函数的堆栈的大小
- int top;//栈顶位置
- Object[] stack;//数组对象
- int maxStackSize;//该堆栈最大元素个数
- //无参构造函数
- public SeqStack(){
- initiate(defaultSize);
- }
- //构造函数
- public SeqStack(int size){
- initiate(size);
- }
- //初始化堆栈
- private void initiate(int sz){
- maxStackSize = sz;
- top = 0;
- stack = new Object[sz];
- }
- public void push(Object elm) throws Exception {
- if(top == maxStackSize){
- throw new Exception("该堆栈已满");
- }
- stack[top] = elm;//保存元素
- top++;
- }
- public Object pop() throws Exception {
- if(top == 0){
- throw new Exception("该堆栈已空");
- }
- top--;
- return stack[top];
- }
- public Object getTop() throws Exception {
- if(top == 0){
- throw new Exception("该堆栈已空");
- }
- return stack[top-1];
- }
- public boolean notEmpty() {
- // TODO Auto-generated method stub
- return top > 0;
- }
- }
链式栈
- package pzw.Stack;
- /**
- * 链式存储结构堆栈的实现
- * @author PZW
- *
- */
- public class LinStack implements Stack{
- public Node top;//栈顶结点
- public int size;//结点个数
- //构造函数
- public LinStack(){
- top = null;
- size = 0;
- }
- public void push(Object elm) throws Exception {
- top = new Node(elm,top);
- size++;
- }
- public Object pop() throws Exception {
- if(size == 0){
- throw new Exception("该堆栈已空");
- }
- Object elm = top.elm;
- top = top.next;
- size--;
- return elm;
- }
- public Object getTop() throws Exception {
- if(size == 0){
- throw new Exception("该堆栈已空");
- }
- return top.elm;
- }
- @Override
- public boolean notEmpty() {
- // TODO Auto-generated method stub
- return size > 0;
- }
- }
相关推荐
Java 数据结构二十讲 包括 数组、简单排序、栈和队列、链表、递归、树、图等数据结构知识 希望对你的 Java 学习有所帮助。
Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法 Java数据结构和算法
java数据结构总结java数据结构总结java数据结构总结java数据结构总结java数据结构总结
JavaJava 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java 数据结构详细教程Java ...
java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题...
《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和...
java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构java数据结构
java 数据结构总结的思维导图笔记,个人做的非常全,需要的自行下载
中软国际培训的学习笔记,很值得参考。学习java数据结构很有必要看看
包含Java数据结构和算法(第二版)书中每章节源代码
Java数据结构和算法第二十二讲.avi Java数据结构和算法第二十五讲.avi Java数据结构和算法第二十八讲.avi Java数据结构和算法第二十六讲.avi Java数据结构和算法第二十四讲.avi Java数据结构和算法第二十讲.avi Java...
Java 数据结构 applet演示 Java 数据结构 applet演示 Java 数据结构 applet演示 Java 数据结构 applet演示
Java数据结构和算法第二版\java数据结构和算法[1].(第二版).part1.rar
全套详细Java数据结构PPT!Java数据结构课件
Java数据结构和算法.pdf
java 数据结构和算法,比较好的资源,希望大家喜欢。
数据结构、算法
java数据结构全套
Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法Java数据结构与算法