【java】【集合】LinkedList的特有功能,用LinkList模擬棧和佇列資料結構
一、LinkList類
1、概述:底層使用連結串列實現
2、特有功能
- public void addFirst(E e) 及 addLast(E e)
- public E getFirst()及getLast()
- public E removeFirst()及public E removeLast()
- public E get(int index):因為底層是連結串列,連結串列沒有下標,需要迭代遍歷:
get()方法的原始碼:
if (index < (size >> 1)) {
Node<E> x = first; //從頭找
for (int i = 0; i < index; i++)
x = x.next;
return x;
} else {
Node<E> x = last; //從尾找
for (int i = size - 1; i > index; i--)
x = x.prev;
return x;
}
}
注意:ArrayList底層是陣列,直接按照索引查詢元素
二、用LinkedList模擬棧、佇列資料結構
1、棧:先進後出
2、建立一個類將LinkList中的方法封裝,建立成員方法實現出棧和進棧,
進棧:addLast(),出棧:removeLast()
/** * 用LinkedList模擬棧結構 */ public static void main(String[] args) { //demo1(); Stack s = new Stack(); s.in("a"); //進棧 s.in("b"); s.in("c"); s.in("d"); while(!s.isEmpty()) { //判斷棧結構是否為空 System.out.println(s.out()); //彈棧 } } public class Stack { private LinkedList list = new LinkedList(); //建立LinkedList物件 public void in(Object obj) { list.addLast(obj); //封裝addLast()方法 } public Object out() { return list.removeLast(); //封裝removeLast()方法 } public boolean isEmpty() { return list.isEmpty(); //封裝isEmpty()方法 } }
2、佇列:先進先出
進棧:addLast()
出棧:removeFist()
相關文章
- 資料結構—棧和佇列資料結構佇列
- 資料結構(棧和佇列)資料結構佇列
- 【資料結構】--棧和佇列資料結構佇列
- 資料結構之棧和佇列資料結構佇列
- 資料結構—棧/佇列資料結構佇列
- 資料結構-佇列、棧資料結構佇列
- 【資料結構】棧(Stack)和佇列(Queue)資料結構佇列
- 資料結構二之棧和佇列資料結構佇列
- 【資料結構】棧和佇列的總結對比資料結構佇列
- 資料結構-棧與佇列資料結構佇列
- 資料結構:棧與佇列資料結構佇列
- 集合框架-用LinkedList實現棧結構框架
- javascript的資料結構快速學-棧和佇列JavaScript資料結構佇列
- 資料結構-js實現棧和佇列資料結構JS佇列
- Java:基於LinkedList實現棧和佇列Java佇列
- 畫江湖之資料結構【第二話:佇列和棧】佇列資料結構佇列
- 畫江湖之資料結構 [第二話:佇列和棧] 佇列資料結構佇列
- 學習JavaScript資料結構(一)——棧和佇列JavaScript資料結構佇列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- 畫江湖之資料結構【第二話:佇列和棧】棧資料結構佇列
- 畫江湖之資料結構 [第二話:佇列和棧] 棧資料結構佇列
- 【資料結構】回顧表、棧、佇列資料結構佇列
- Java版-資料結構-佇列(陣列佇列)Java資料結構佇列陣列
- 資料結構基礎學習之(棧和佇列)資料結構佇列
- 《資料結構與演算法》——表、棧和佇列資料結構演算法佇列
- 大二資料結構學習3(棧和佇列)資料結構佇列
- 【資料結構】堆排序和模擬實現優先順序佇列!!資料結構排序佇列
- Stack and Queue in JavaScript(Javascript中的資料結構之棧和佇列)JavaScript資料結構佇列
- JavaScript的資料結構與演算法(一)——棧和佇列JavaScript資料結構演算法佇列
- Java版-資料結構-佇列(迴圈佇列)Java資料結構佇列
- 淺談演算法和資料結構(1):棧和佇列演算法資料結構佇列
- java實現單連結串列、棧、佇列三種資料結構Java佇列資料結構
- 資料結構學習(C++)——佇列應用(事件驅動模擬) (轉)資料結構C++佇列事件
- 三、資料結構演算法-棧、佇列、優先佇列、雙端佇列資料結構演算法佇列
- 詳細分析棧和佇列的資料結構的實現過程(Java 實現)佇列資料結構Java
- 一本正經的聊資料結構(3):棧和佇列資料結構佇列
- 資料結構:特殊的線性表之 棧 & 佇列資料結構佇列
- python資料結構之棧、佇列的實現Python資料結構佇列