复习----使用链表实现栈(后进先出)及迭代
生活随笔
收集整理的這篇文章主要介紹了
复习----使用链表实现栈(后进先出)及迭代
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用鏈表進行模擬棧比用數組好用,考慮的要素也少還方便。
鏈表結構
private class Node{//鏈表結構Item item;Node next;}迭代器
private class Iterator implements java.util.Iterator<Item>{//迭代器private Node p=first;@Overridepublic boolean hasNext() {return p!=null;}@Overridepublic Item next() {Item item=p.item;p=p.next;return item;}@Overridepublic void remove() {}}完整源代碼
static class stack<Item>{private Node first;private int N;private class Node{//鏈表結構Item item;Node next;}private int size(){return N;}private boolean isEmpty(){return first==null;}private void push(Item item){//入棧Node oldfirest=first;first=new Node();first.item=item;first.next=oldfirest;N++;}private Item pop(){//出棧Item item=first.item;first=first.next;N--;return item;}private Iterator iterator(){return new Iterator();}private class Iterator implements java.util.Iterator<Item>{//迭代器private Node p=first;@Overridepublic boolean hasNext() {return p!=null;}@Overridepublic Item next() {Item item=p.item;p=p.next;return item;}@Overridepublic void remove() {}}}簡單的使用
static public void main(String[] args) {stack<String> stack = new stack<String>();System.out.println("入棧中... ...");stack.push("hello world!");stack.push("hello Java!");stack.push("hello stack");System.out.println("--------出棧---------");String pop = stack.pop();System.out.println(pop);System.out.println("--------迭代--------");ListStack.stack<String>.Iterator iterator = stack.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}總結
以上是生活随笔為你收集整理的复习----使用链表实现栈(后进先出)及迭代的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Openshift 4.4 静态 IP
- 下一篇: Autofac在Asp.net MVC中