1. 程式人生 > 其它 >廣西大學東信杯 F.金手指

廣西大學東信杯 F.金手指

1.棧:

  定義:一個連續的記憶體空間,類似陣列。具有自己的特點:後進先出。和演算法dfs有關。

  用法:背景(java),類:Stack (歸屬於Java.util.Stack) 是Vector的子類,可以直接使用

  Stack<引用資料型別> a  = new Stack<引用資料型別>()

    方法有:push(引用物件)//作用,入棧一個數據放到棧頂。

        pop(); //作用,直接把棧頂的資料彈出,返回這個資料。

        peek();//作用,返回棧頂的資料,但是並不彈出。

        isEmpty();//作用,判斷是否為空

        size();//返回長度,長度可變。以具體放入多少資料為標準。

 

2. 定義:和棧相同,唯一的區別就是:先進先出。和演算法Bfs有關。 

  2.1.建立佇列

    使用Queue介面 ,Queue的實現類有LinkedList和PriorityQueue。最常用的實現類是LinkedList。

      Queue的六種方法:

      add()和 offer()  

      向佇列中新增元素,將元素壓入隊尾。當超出容量時add()會丟擲異常 , offer()會返回false。

      remove() 和 poll()

      移除元素,將元素從隊頭移出。噹噹前容量為0執行移除操作時,remove()會丟擲異常 , poll()會返回false。

      element() 和 peek()

      獲取隊頭元素,當前容量為0時。element()會丟擲異常 , peek()會返回null。