java 數(shù)據(jù)結(jié)構(gòu)中棧和隊列的實例詳解
java 數(shù)據(jù)結(jié)構(gòu)中棧和隊列的實例詳解
棧和隊列是兩種重要的線性數(shù)據(jù)結(jié)構(gòu),都是在一個特定的范圍的存儲單元中的存儲數(shù)據(jù)。與線性表相比,它們的插入和刪除操作收到更多的約束和限定,又被稱為限定性的線性表結(jié)構(gòu)。棧是先進后出FILO,隊列是先進先出FIFO,但是有的數(shù)據(jù)結(jié)構(gòu)按照一定的條件排隊數(shù)據(jù)的隊列,這時候的隊列屬于特殊隊列,不一定按照上面的原則。
實現(xiàn)棧:采用數(shù)組和鏈表兩種方法來實現(xiàn)棧
鏈表方法:
package com.cl.content01; /* * 使用鏈表來實現(xiàn)棧 */ public class Stack<E> { Node<E> top=null; public boolean isEmpty(){ return top==null; } /* * 出棧 */ public void push(E data){ Node<E> nextNode=new Node<E>(data); nextNode.next=top; top=nextNode; } /* * 出棧 */ public E pop(){ if(this.isEmpty()){ return null; } E data =top.datas; top=top.next; return data; } } /* * 鏈表 */ class Node<E>{ Node<E> next=null; E datas; public Node(E datas){ this.datas=datas; } }
實現(xiàn)隊列:同棧一樣
鏈表方法:
package com.cl.content01; public class MyQueue<E> { private Node<E> head=null; private Node<E> tail=null; public boolean isEmpty(){ return head==null; } public void put(E data){ Node<E> newNode=new Node<E>(data); if(head==null&&tail==null) head=tail=newNode; else tail.next=newNode; tail=newNode; } public E pop(){ if(this.isEmpty()) return null; E data=head.data; head=head.next; return data; } public int size(){ int n=0; Node<E> t=head; while(t!=null){ n++; t=t.next; } return n; } public static void main(String[] args) { MyQueue<Integer> q=new MyQueue<Integer>(); q.put(1);q.put(3);q.put(2); System.out.println(q.pop()); System.out.println(q.size()); System.out.println(q.pop()); } } class Node<E>{ Node<E> next=null; E data; public Node(E data){ this.data=data; } }
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望通過本能幫助到大家,謝謝大家對本站的支持!
- java 數(shù)據(jù)結(jié)構(gòu)之棧與隊列
- Java深入了解數(shù)據(jù)結(jié)構(gòu)之棧與隊列的詳解
- Java 棧和隊列的相互轉(zhuǎn)換詳解
- Java棧和基礎隊列的實現(xiàn)詳解
- 一起來學習Java的棧和隊列
- Java?棧與隊列實戰(zhàn)真題訓練
- Java 棧與隊列超詳細分析講解
- Java使用跳轉(zhuǎn)結(jié)構(gòu)實現(xiàn)隊列和棧流程詳解
- Java線性結(jié)構(gòu)中棧、隊列和串的基本概念和特點詳解
- Java常見的數(shù)據(jù)結(jié)構(gòu)之棧和隊列詳解
- Java 棧和隊列的交互實現(xiàn)
相關(guān)文章
SpringCloud實現(xiàn)灰度發(fā)布的方法步驟
本文主要介紹了SpringCloud實現(xiàn)灰度發(fā)布的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05RocketMQ消息隊列實現(xiàn)隨機消息發(fā)送當做七夕禮物
這篇文章主要為大家介紹了RocketMQ消息隊列實現(xiàn)隨機消息發(fā)送當做七夕禮物,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作
這篇文章主要介紹了springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。2021-06-06Spring源碼之事件監(jiān)聽機制詳解(@EventListener實現(xiàn)方式)
這篇文章主要介紹了Spring源碼之事件監(jiān)聽機制(@EventListener實現(xiàn)方式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Java加載properties文件實現(xiàn)方式詳解
這篇文章主要介紹了Java加載properties文件實現(xiàn)方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07