資料結構與演算法 二 (棧 佇列)

2022-09-20 19:39:06 字數 2134 閱讀 8690

這篇筆記主要寫棧和佇列,因為他們的特點是相反的

一、棧特點:先進後出,類似於子彈入彈夾,先進去的子彈最後才發射

這裡也使用陣列來模擬一下,有四個方法,壓棧,取棧,檢視棧頂,是否為空

//

棧的底層我們使用陣列來儲存資料

int elements;

public

stacktest1()

//壓棧(壓入元素)

public

void push(int

element)

//把新增的元素放入新陣列中

newarr[elements.length] =element;

//使用新陣列替換久陣列

elements =newarr;

}//取出棧頂元素

public

intpop()

//取出陣列的最後乙個元素

int element = elements[elements.length-1];

//建立乙個新的陣列

int newarr = new

int[elements.length-1];

//把原陣列中除了最後乙個元素的其他元素都放在新陣列中

for(int i = 0;i)

//替換陣列

elements =newarr;

//返回棧頂元素

return

element;

}//檢視棧頂元素

public

intpeek()

//判斷棧是否為空

public

boolean

isempty()

測試類

//

建立乙個棧

stacktest1 ms = new

stacktest1();

//壓入資料

ms.push(9);

ms.push(8);

ms.push(7);

//出棧

system.out.println(ms.pop());

//檢視棧頂元素

system.out.println(ms.peek());

//檢視棧是否為空

system.out.println(ms.isempty());

結果:

在j**a中集合vector的子類就是stack

二、佇列

特點:先進先出,就跟我們日常生活的排隊一樣

**演示:也用陣列演示,這裡寫了三個方法,入隊,出隊,是否為空

int

elements;

public

queuetest()

//入隊

public

void add(int

element)

//把新增的元素放入新陣列中

newarr[elements.length] =element;

//使用新陣列替換久陣列

elements =newarr;

}//出隊

public

intpoll()

//替換陣列

elements =newarr;

return

element;

}//判斷佇列是否為空

public

boolean

isempty()

測試類

//

建立乙個佇列

queuetest qt = new

queuetest();

//入隊

qt.add(9);

qt.add(8);

qt.add(7);

//出隊

system.out.println(qt.poll());

//是否為空

system.out.println(qt.isempty());

system.out.println(qt.poll());

system.out.println(qt.poll());

system.out.println(qt.isempty());

結果

在j**a中,也有佇列就是queue介面,和list、set介面並列

資料結構(二) 棧棧與佇列

棧 stack 是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧頂 top 它是後進先出 lifo 的。對棧的基本操作只有push 進棧 和pop 出棧 兩種,前者相當於插入,後者相當於刪除最後的元素。實現 利用乙個單鏈表來實現棧的資料結構。而且,因為我們都只針對棧頂元素進行操作,...

佇列 棧(資料結構與演算法)

佇列是一種先進先出 fifo 的資料結構,從隊尾進,從隊頭出 在 fifo 資料結構中,將首先處理新增到佇列中的第乙個元素。如上圖所示,佇列是典型的 fifo 資料結構。插入 insert 操作也稱作入隊 enqueue 新元素始終被新增在佇列的末尾。刪除 delete 操作也被稱為出隊 deque...

資料結構與演算法(棧與佇列)

棧 stack 有些地方稱為堆疊,是一種容器,可存入資料元素 訪問元素 刪除元素,他的特點在於只能允許在容器的一端 稱為棧頂端指標,英語top 進行加入資料 英語push 和輸出資料 英語pop 的運算。沒有了位置概念,保證任何時候可以訪問 刪除的元素都是此前最後存入的那個元素,確定了一種預設的訪問...