data structure 之棧與佇列

2021-08-26 13:20:47 字數 698 閱讀 6394

問題一:用兩個佇列實現乙個棧

思路:定義兩個佇列分別為q1,q2。

呼叫棧的push操作時,直接將元素push到佇列q1中,時間複雜度為o(1)。

呼叫棧的pop操作時,先把q1中的q1.size() - 1個元素push到q2中,然後再pop出q1中的最後乙個元素,再把q2中的所有元素全部push到q1中,時間複雜度為o(n)。

**:

templateclass stack

void pop()

cout << q1.front() << endl;

q1.pop();

while (q2.size() > 0)

}};

問題二:用兩個棧實現乙個佇列

思路:定義兩個棧分別為s1,s2。

呼叫佇列的push操作時,直接將元素push到佇列s1中,時間複雜度為o(1)。

呼叫佇列的pop操作時,先把s1中的所有元素push到s2中,然後再呼叫s2的pop操作,再把s2中的所有元素全部push到s1中,時間複雜度為o(n)。

**:

templateclass queue

void pop()

cout << s2.top() << endl;

s2.pop();

while (!s2.empty())

}};

DataStructure 線性表 棧 佇列

這裡是水水水的資料結構課的筆記 1.線性表 一些無腦的操作 低配vector,線性表無序有序都可以通過下標快速訪問。但是修改操作耗時大,建議不太靈活,多組讀取的資料使用 include using namespace std template typename e class list list c...

data structure 3 棧的表示和實現

1 順序棧 include include define status int define ok 1 define error 0 define overflow 2 define stack init size 20 define stackincrement 5 define selemtyp...

DataStructure 8 查詢技術

8.1概述 1 查詢方式分類 靜態查詢 不涉及插入 刪除操作的查詢 動態查詢 涉及插入 刪除操作的查詢 2 查詢結構 線性表 適用於靜態查詢,主要採用順序查詢技術,折半查詢技術.樹表 適用於動態查詢,主要採用二叉排序樹查詢技術.雜湊表 靜態查詢和動態查詢均適用,主要採用雜湊技術.3 查詢演算法的效能...