下压堆栈(链表实现)
来源:互联网 发布:windows界面停止工作 编辑:程序博客网 时间:2024/04/28 07:16
import java.util.Iterator;import java.util.Scanner;public class Stack<Item> implements Iterable<Item> {private Node first;// 栈顶private int N;// 元素数量// 定义结点的嵌套类private class Node{Item item;Node next;}public boolean isEmpty() { return N==0; }public int size() { return N; }public void push(Item item){Node oldfirst=first;first=new Node();first.item=item;first.next=oldfirst;N++;}public Item pop(){Item item=first.item;first=first.next;N--;return item;}@Overridepublic Iterator<Item> iterator() {return new ListIterator();}private class ListIterator implements Iterator<Item>{private Node current=first;@Overridepublic boolean hasNext() {return current!=null;}@Overridepublic Item next() {Item item=current.item;current=current.next;return item;}@Overridepublic void remove() {}}public static void main(String[] args) {Stack<String> s=new Stack<String>();Stack<String> all=new Stack<String>();Scanner cin=new Scanner(System.in);while(cin.hasNext()){String item=cin.next();if(item.equals("$")) break;if(!item.equals("-")){s.push(item);all.push(item);System.out.print("push "+item);}else if(!s.isEmpty()){System.out.print("pop "+s.pop());}System.out.println(" | "+s.size()+" left on stack");}// Test iteratorfor(String str : all){System.out.print(str+" ");}System.out.println();}}
// Test exampleto be or not to - be - - that - - - is $push to | 1 left on stackpush be | 2 left on stackpush or | 3 left on stackpush not | 4 left on stackpush to | 5 left on stackpop to | 4 left on stackpush be | 5 left on stackpop be | 4 left on stackpop not | 3 left on stackpush that | 4 left on stackpop that | 3 left on stackpop or | 2 left on stackpop be | 1 left on stackpush is | 2 left on stackis that be to not or be to
0 0
- 下压堆栈(链表实现)
- 下压堆栈 (链表实现)
- 下压堆栈 链表实现 Java
- 下压堆栈的链表实现 java版本
- 下压堆栈的链表实现(LIFO)
- 下压栈:链表实现
- 下压堆栈Stack
- 算法1.2下压堆栈(链表表示)(algs4)
- 下压栈(键表实现)
- 链表实现堆栈
- 下压栈:动态数组实现
- 堆栈的链表实现
- 单向链表实现堆栈
- 基于链表实现堆栈
- Java链表实现堆栈
- 使用链表实现堆栈
- 链表堆栈C实现
- 单向链表实现堆栈
- 形式语言与自动机理论总结
- 笔记本硬盘数据导出失败怎么办丨用什么恢复
- 搭建Xcode(5.1.1) cocos2dx(cocos2d-x-2.2)开发环境
- Control character in cookie value, consider BASE64 encoding your value
- 打jar包时 出现的问题
- 下压堆栈(链表实现)
- UPD BZOJ 1798: [Ahoi2009]Seq 维护序列seq
- 动态创建对象
- 在头文件里避免使用using namespace XXX;
- linux svn 使用
- CGRectOffset与CGRectInset的计算公式
- 针对OpenSSL吐嘈的吐嘈-如此唱反调
- 查询结果四舍五入
- iOS6和iOS7代码的适配(6) —— NSLocalizedString