Stack與Queue的實現(c 模板實現)

2022-03-25 20:56:38 字數 1837 閱讀 5331

#include

#include

using

namespace

std;

template

> //類模板

class

stack

void pop( )

void push(t temp)

int size()

};int main(void)

#include

#include

using

namespace

std;

template

> //類模板

我的具體實現:

1.使用 vector 來實現

2.自寫堆排序 ,因此就直接採用通常意義上的大與小的關係了

3. 採用模板實現優先佇列

*********************************************/

#include

#include

using

namespace

std;

class heap

// 如果父結點的值已經大於孩子結點的值,則直接結束

if (temp >= vec[child])

break;

// 把孩子結點的值賦給父結點

vec[parent] = vec[child];

// 選取孩子結點的左孩子結點,繼續向下篩選

parent = child;

child = 2 * child + 1;

}vec[parent] = temp;

}void heapsort(vector

&list)

// 進行n-1次迴圈,完成排序

for (double i = list.size() - 1; i > 0; i--)

}};template

> // 用 vector 來實現

Stack 與 Queue互相轉換

棧 後進先出,只可插入或取出棧頂元素 佇列 先進先出,只可取出隊首元素,插入隊尾元素 棧和佇列的實現很相似,兩種資料結構是否可以互相轉換?答案是肯定的,棧與佇列相互轉換可以加深棧與佇列的理解 用棧實現佇列 用後進先出實現先進先出 方案 利用兩次後進先出 棧 即可實現先進先出 佇列 比較簡單,直接看圖...

使用棧Stack實現佇列Queue

如何只使用stack實現queue呢?由於stack是現進後出 filo 而queue是先進先出的 fifo 也就是說stack進行了一次反向,進行兩次反向就能實現queue的功能,所以可以用兩個stack實現queue。假設兩個棧instack和outstack,且都為空。可以認為onstack提...

stack 容器與 queue 容器入門

歡迎前往我的個人部落格閱讀原文。學習了五種常用的容器,還剩下 stack 堆疊容器和 queue 佇列容器沒有學習。今天就來學習這兩種容器。stack 堆疊是乙個後進先出 last in first out,lifo 的線性表,插入和刪除元素都只能在表的一端進行。插入元素的一端稱為棧頂 stack ...