JAVA实现栈
来源:互联网 发布:js获取系统时间 编辑:程序博客网 时间:2024/06/04 23:30
package datastruct;import java.util.Iterator;import java.util.NoSuchElementException;/** * 用单链表实现栈,头插法 * @author Wee bing * @param <Item> */public class MyStack<Item> implements Iterable<Item> {private Node<Item> head;//头节点private int n;//元素个数@SuppressWarnings("hiding")private class Node<Item> {private Item item;private Node<Item> next;private Node(Item item) {this.item = item;}}public MyStack() {head = null;}//栈中元素的个数public int size() {return n;}//栈是否为空public boolean isEmpty() {return n == 0;}//入栈public void push(Item item) {if (item == null) throw new NullPointerException();Node<Item> oldHead = head;head = new Node<Item>(item);head.next = oldHead;n++;}//偷瞄栈顶元素public Item peek() {if (isEmpty()) throw new NoSuchElementException();return head.item;}//出栈public Item pop() {if (isEmpty())throw new NullPointerException();Item item = head.item;head = head.next;n--;return item;}//元素迭代@Overridepublic Iterator<Item> iterator() {// TODO Auto-generated method stubreturn new MyIterator<Item>(head);}@SuppressWarnings("hiding")private class MyIterator<Item> implements Iterator<Item> {private Node<Item> cur;private MyIterator(Node<Item> head) {this.cur = head;}@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn cur != null;}public Item next() {Item item = cur.item;cur = cur.next;return item;}}//测试public static void main(String[] args) {MyStack<Integer> ms = new MyStack<Integer>();ms.push(8);ms.push(5);ms.push(11);ms.push(100);ms.push(50);ms.push(70);ms.push(77);ms.push(200);System.out.println(ms.size());System.out.println(ms.pop());System.out.println(ms.size());System.out.println(ms.pop());System.out.println(ms.size());System.out.println("--------------------------");Iterator<Integer> arr = ms.iterator();while (arr.hasNext()) {System.out.println(arr.next());}System.out.println(ms.size());System.out.println(ms.peek());}}
1 0
- java实现栈
- java 实现栈数据结构
- Java 实现栈
- java实现栈
- java 实现一个栈
- java实现栈结构
- 链式栈 java实现
- Java实现链式栈
- 栈的实现(JAVA)
- java实现栈
- Java实现栈
- java 栈实现
- 栈的实现-----java
- 【java】栈的实现
- Java栈实现
- java实现顺序栈
- Java 实现栈
- 栈的java实现
- 测试工程师比会的Linux命令
- poj 1845 数论
- linux下php安装php-kafka扩展和php-rdkafka扩展
- 排序算法的总结——Java实现
- Flex 布局之详解
- JAVA实现栈
- Java验证码—ValidateCode的使用
- *【UESTC】优先队列
- 2016蓝桥杯java A组第2题
- 2017蓝桥杯模拟赛 Problem F: 滑动解锁(21分)
- 第一篇博客
- hdu1204 Markov随机过程
- vsftpd自启动(开机启动)的三种方法
- java HashMap操作对象