一二三四高清视频免费观看,长沙网站推广seo,沈阳网站建设渠道,校园网络规划设计目录
1.栈的概念
2.栈的模拟实现
1.栈的方法
2.模拟栈用#xff08;整型#xff09;数组的形式呈现
2.1栈的创建
2.2压栈
2.3栈是否为空
2.4出栈
2.5获取栈中有效元素个数
2.6获取栈顶元素
2.7完整代码实现 1.栈的概念 从上图中可以看到#xff0c; Stack 继承了…目录
1.栈的概念
2.栈的模拟实现
1.栈的方法
2.模拟栈用整型数组的形式呈现
2.1栈的创建
2.2压栈
2.3栈是否为空
2.4出栈
2.5获取栈中有效元素个数
2.6获取栈顶元素
2.7完整代码实现 1.栈的概念 从上图中可以看到 Stack 继承了 Vector Vector 和 ArrayList 类似都是动态的顺序表不同的是 Vector 是线程安 全的。 1栈 一种特殊的线性表其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈 顶另一端称为栈底。栈中的数据元素遵守后进先出LIFO Last In First Out 的原则。 2压栈栈的插入操作叫做进栈 / 压栈 / 入栈 入数据在栈顶 。 3出栈栈的删除操作叫做出栈。 出数据在栈顶 。 总结先进后出 2.栈的模拟实现 1.栈的方法 2.模拟栈用整型数组的形式呈现 2.1栈的创建 public class MyStack {public int[] arr;public int size;public MyStack() {this.arr new int[10];}
}2.2压栈 1首先对现有栈进行判断是否为满若满则需要进行扩容 扩容 private void ensureCapacity(){if(sizearr.length){arr Arrays.copyOf(arr,size*2);}} 2向数组添加 public int push(int x){ensureCapacity();arr[size]x;return x;
} 2.3栈是否为空 public boolean empty(){return 0 size;} 2.4出栈 1首先得判断栈是否为空若为空我们需要抛出异常 自定义一个异常为EmptyException如下 public class EmptyException extends RuntimeException{public EmptyException() {}public EmptyException(String message) {super(message);}
} 2合法出栈 public int pop() {if(empty()) {throw new EmptyException(栈是空的);}return arr[--size];} 2.5获取栈中有效元素个数 public int size(){return size;} 2.6获取栈顶元素 public int peek(){if(empty()) {throw new EmptyException(栈是空的);}return arr[size-1];} 2.7完整代码实现 import java.util.Arrays;public class MyStack {public int[] arr;public int size;public MyStack() {this.arr new int[10];}private void ensureCapacity(){if(sizearr.length){arr Arrays.copyOf(arr,size*2);}}public int push(int x){ensureCapacity();arr[size]x;return x;}public boolean empty(){return 0 size;}public int pop() {if(empty()) {throw new EmptyException(栈是空的);}return arr[--size];}public int size(){return size;}public int peek(){if(empty()) {throw new EmptyException(栈是空的);}return arr[size-1];}
}EmptyException public class EmptyException extends RuntimeException{public EmptyException() {}public EmptyException(String message) {super(message);}
}以上为我个人的小分享如有问题欢迎讨论 都看到这了不如关注一下给个免费的赞