算法1.2下压堆栈(链表表示)(algs4)
来源:互联网 发布:淘宝闲鱼怎么搜索 编辑:程序博客网 时间:2024/04/28 05:25
算法1.2下压堆栈(链表表示)API
public class Stack<Item> implements Iterable<Item>
private Node first 栈顶(最近添加的元素)
private int N 元素数量
public class Node 定义了节点的嵌套类
Item item 节点的值
Node next 下一个节点的引用
private class ListIterator implements Iterator<Item> 迭代器
private Node current
@Override
public boolean hasNext()
@Override
public Item next()
public boolean isEmpty()
public int size()
public void push(Item item) 头插法,入栈
public Item pop() 删除首节点,出栈
@Override
public Iterator<Item> iterator() 返回一个迭代器
头插法,入栈
删除首节点,出栈(出队)
package _1_3linkedList;import java.util.Iterator;/*算法1.2下压堆栈(链表表示)*/public class Stack<Item> implements Iterable<Item>{private Node first;/*the top of the stack,recently added elements*/private int N;/*Number of elements*/public class Node /*定义了节点的嵌套类*/{Item item;Node next;}public boolean isEmpty(){return N==0; /*or first==null*/}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;}}}
测试用例:
package _1_3linkedList;import java.util.Scanner;/*算法1.2下压堆栈(链表表示)-测试用例*/public class TestStack{public static void main(String[] args){Stack<String> stack=new Stack<String>();Scanner sc=new Scanner(System.in);while(true){String s=sc.nextLine();if(s.equals("eof"))break;if(!s.equals("-"))stack.push(s);else if(!stack.isEmpty())System.out.println(stack.pop());}for(String s:stack)System.out.println(s);sc.close();}}
输入:
12345-5-46eof6321
- 算法1.2下压堆栈(链表表示)(algs4)
- 下压堆栈 (链表实现)
- 算法分析(algs4)
- 下压堆栈的链表实现(LIFO)
- 算法1.4背包(algs4)
- 初级排序算法(algs4)
- 下压堆栈(链表实现)
- 下压堆栈 链表实现 Java
- 回环变位(algs4)
- 归并排序(algs4)
- 快速排序(algs4)
- 优先队列(algs4)
- 下压堆栈Stack
- 算法3.1 顺序查找(基于无序链表)(algs4)
- 算法3.2 二分查找(基于有序数组)(algs4)
- 算法1.3 先进先出队列(algs4)
- 下压(LIFO)栈,ResizingArrayStack
- 下压堆栈的链表实现 java版本
- svn项目被锁住了,不能操作怎么办
- 【CodeForces】598B
- HTML5-楼层商品-购物车-放大镜
- 【持续集成框架Jenkins】环境搭建(win10)
- kafka-manager安装
- 算法1.2下压堆栈(链表表示)(algs4)
- saltstatck简单配置和使用
- Centos6.5 python 2.6.6升级2.7
- Apache Ab安装
- 图像处理常用算法GPU实现三:基于模板匹配的边缘检测
- metadata lock
- java 类加载机制
- IDEA破解 2017 IDEA license server 激活(可用)
- 将C++的std::string类型变量赋值给char类型数组