赞
踩
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
- public class Stack<Item> {
- private Node first; // 栈顶(最近添加的元素)
- private int N; // 元素数量
-
-
-
- /**
- * 返回栈是否为空
- * @return true 栈为空, false 栈不为空。
- */
- public boolean isEmpty() {
- return N == 0;
- }
-
- /**
- * 返回栈内元素数目
- * @return 栈内元素数目
- */
- public int size() {
- return N;
- }
-
- /*
- * 添加元素到栈
- * @param item 添加的元素
- */
- public void push (Item item) {
- Node oldNode = first;
- first = new Node();
- first.data = item;
- first.next = oldNode;
- N++;
- }
-
- /*
- * 从栈顶移除元素
- * return 移除的元素
- */
- public Item pop() {
- Item item = first.data;
- first = first.next;
- N--;
- return item;
- }
-
- // 定义了节点的内部类
- private class Node {
- Item data;
- Node next;
- }
-
- public static void main(String[] args) {
- Stack<String> s = new Stack()<String>;
- System.out.println(s.isEmpty());
- s.push("hhhhh");
- System.out.println(s.first.data);
- }
-
- }
- public class Stack<Item> {
- private item[] a = (Item[]) new Object[1]; // 存储栈内元素
- private int N; // 栈内元素数目
-
- /*
- * 返回栈是否为空
- * @return true 栈为空,false 栈不为空。
- */
- public boolean isEmpty() {
- return N == 0;
- }
-
- /**
- * 返回栈内元素数目
- * @return 栈内元素数目
- */
- public int size() {
- return N;
- }
-
- /*
- * 添加元素到栈
- * @param item 添加的元素
- */
- public void push (Item item) {
- if (N == a.length) {
- resize(2 * a.length);
- }
- a[++N] = item;
- }
-
- /*
- * 从栈顶移除元素
- * return 移除的元素
- */
- public Item pop() {
- Item item = a[--N];
- a[N] == null;
- if (N > 0 && N == a.length / 4) {
- resize(a.length / 2);
- }
- return item;
- }
-
- /**
- * 重置数组大小
- * @param max 重置的数组大小
- */
- public void resize(int max) {
- // 将栈移动到一个新数组
- Item[] temp = (Item[]) new Object[max];
- for (int i = 0; i < N; i++) {
- temp[i] = a[i];
- a = temp;
- }
- }
-
- public static void main(String[] args) {
- Stack<String> s = new Stack()<String>;
- System.out.println(s.isEmpty());
- s.push("hhhhh");
- System.out.println(s.a[0]);
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。