栈的实现
来源:互联网 发布:csgo淘宝买饰品 编辑:程序博客网 时间:2024/06/06 05:11
- 1栈的数组实现
1、栈的数组实现
package cn.zhuang.stack;/** * 栈的ADT实现,数组栈 * @author zhuang */public class ArrayStack<E> { private E[] data;//对象数组 private int top;//栈顶位置 //默认构造函数,初始数组容量为10 public ArrayStack(){ data = (E[]) new Object[10]; top = -1; } //自定义数组容量 public ArrayStack(int initialCapacity){ if(initialCapacity < 0){ throw new IllegalArgumentException("初始容量太小"); } data = (E[]) new Object[initialCapacity]; top = -1; } //得到栈的数据大小 public int getSize(){ return top+1; } //是否为空 public boolean isEmpty(){ return (top == -1); } public E peek(){ if(top == -1){ throw new IllegalArgumentException("栈容量为空"); } return data[top]; } public void push(E item){ if(top == data.length - 1){ //容量已满,增加一倍 // 复制数组,参数如下: //src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。 E[] newArray = (E[]) new Object[data.length*2]; System.arraycopy(data, 0, newArray, 0, data.length); data = newArray;//新复制数组,容量为原来二倍,并给data } top++; data[top] = item; } public E pop(){ E temp; if(top == -1){ throw new IllegalArgumentException("栈容量为空!"); } temp = data[top]; data[top] = null;//当数据类型为Object的时候才需要 top--; return temp; }}
0 0
- 栈的顺序实现
- 栈的数组实现
- 栈的指针实现
- 栈的实现
- 栈的实现
- 顺序栈的实现
- 栈的实现
- 链栈的实现
- 栈的C++实现
- 栈的实现
- 栈的宏实现
- 栈的实现
- 顺序栈的实现
- 链栈的实现
- 栈的链式实现
- 链式栈的实现
- 用链表实现的栈
- 栈的简单实现
- JS 异步纵向编程
- nyoj 69 数的长度 (N!数长公式)
- 收藏好的博客地址
- Android 应用内多进程实现 单APK应用多进程
- 整理了一份React-Native学习指南
- 栈的实现
- javascript window.onload addLoadEvent(func)
- iOS打包ipa的几种方式
- php中JSON的使用与转换
- 第7章 URLConnection
- chmod
- 《Spark MLlib 机器学习》第十四章代码
- gdb基本指令
- Palindrome Linked-List