棧Stack和佇列Queue

2022-03-17 20:02:55 字數 979 閱讀 2432

1.stack和queue

stack是先進後出的,queue是先進先出的。

使用方法如下:

public

class

dog

public dog(string

name)

public

void

consolename()

}

//棧

先進後出

stacks = new stack();

s.push(

new dog("

a"));//

push插入物件

s.push(new dog("b"

)); s.peek().consolename();

//peek返回頂部物件--b

s.pop().consolename();//

移除並返回頂部物件(返回物件是移除的物件)--b

s.peek().consolename();//

--a

//對列

先進先出

queueq = new queue();

q.enqueue(

new dog("a"

)); q.enqueue(

new dog("b"

)); q.peek().consolename();

//返回位於開始處的物件--a

q.dequeue().consolename() ;//

移除並返回開始的物件--a

q.peek().consolename() ;//

a已經移除,返回b

2.棧和佇列的實際使用

stack:先進後出,飲料自動販賣機,後放的飲料先賣。

queue:先進先出,如商店的存貨,為防止過期,把先到的貨擺上商品貨架。

棧(Stack)和佇列(Queue)

棧和佇列是兩種重要的線性結構。從資料結構角度看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,它們是操作受限的線性表,因 此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向 的程式設...

棧stack 和 佇列queue

stl中,sort的預設排序為less,也就是說從小到大排序 priority queue預設是less,也就說大頂堆 map預設是less,也就說用迭代器迭代的時候預設是小的排在前面 set預設是less,也就是說用迭代器迭代的時候是從小到大排序的。棧和佇列的區別是啥?吃多了拉就是佇列,吃多了吐就...

棧(stack)和佇列(queue)

棧的定義 特點 filo 是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為棧頂 top 棧頂由乙個稱為棧頂指標的位置指示器 對於順序棧,就是記錄棧頂元素所在陣列位置標號的乙個整型變數 對於鏈式棧,就是記錄棧頂元素所在結點位址的指標 來指示,它是動態變化的。表的另一端稱...