當(dāng)前位置:
首頁(yè) >
复习----使用链表实现队列(先进先出)及迭代
發(fā)布時(shí)間:2025/3/11
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
复习----使用链表实现队列(先进先出)及迭代
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)現(xiàn)隊(duì)列比實(shí)現(xiàn)棧的會(huì)多一點(diǎn)復(fù)雜,需要兩個(gè)標(biāo)記,first表示隊(duì)頭,last表示隊(duì)尾。
鏈表結(jié)構(gòu)
private class Node{Item item;Node next;}迭代器
與實(shí)現(xiàn)棧的迭代器一模一樣
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 queue<Item>{private Node first;//隊(duì)頭private Node last;//隊(duì)尾private int N;private class Node{Item item;Node next;}private boolean isEmpty(){return first==null;}private int size(){return N;}private void enqueue(Item item){//入隊(duì)Node oldlast=last;last=new Node();last.item=item;last.next=null;if(isEmpty()){//如果隊(duì)列為空,則first需要和last指向相同first=last;}else {//隊(duì)列不為空的話,就是正常情況直接last指向隊(duì)尾的下一個(gè)位置(nulloldlast.next=last;}N++;}private Item dequeue(){//出隊(duì)Item item=first.item;first=first.next;if(isEmpty()){//如果隊(duì)里沒(méi)有元素的話,last得為空last=null;}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() {}}}簡(jiǎn)單實(shí)例
public static void main(String[] args) {queue<Integer> stringqueue = new queue<Integer>();System.out.println("入隊(duì)中... ...");for(int i=1;i<=9;i++){stringqueue.enqueue(i);}queue<Integer>.Iterator iterator = stringqueue.iterator();System.out.println("迭代中... ...");while(iterator.hasNext()){System.out.print(iterator.next()+" ");}System.out.println();System.out.println("---我是分割線---"+"\n"+"出隊(duì)中... ...");while (!stringqueue.isEmpty()){System.out.print(stringqueue.dequeue()+" ");}if(stringqueue.size()==0){System.out.println("出隊(duì)完畢!");}}總結(jié)
以上是生活随笔為你收集整理的复习----使用链表实现队列(先进先出)及迭代的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: yolov5的flask部署python
- 下一篇: 安装composer以及laravel框