Mergeable Stack 鍊錶實現棧

2022-05-01 01:42:08 字數 566 閱讀 1121

zoj - 4016 

一開始用stl中內建的棧來寫,其中第三個操作,我先複製到乙個陣列,再將其倒給另乙個棧

這個方法有兩個錯誤的地方:

1.棧在記憶體很大需要擴容時,記憶體會成倍增長,解決辦法是提前規定每個棧的大小,但這樣還是不適用於這題

2.如果每次都用乙個陣列來過度,時間複雜度是o(n*n)

#include#includeusing namespace std;

const int maxn=3*1e5+5;

struct node

;node *head[maxn];

node *tail[maxn];

int num[maxn];

void add(int s,int v)

head[s]->num=v;

head[s]->nex=chan;

}int main()

else if(comd==2)

}else if(comd==3)

else if(tail[s]==null)}}

} return 0;

}

鍊錶(單向鍊錶,雙向鍊錶)

首先鍊錶是以節點的方式儲存資料的,每個節點包含資料域 data 節點域 next 鍊錶的每個節點在計算機中儲存的位置是不連續的和隨機的,優點就是資料的插入和刪除比較好,而查詢資料效率不是太好 因為鍊錶無法像靜態資料一樣隨機讀取資料,必須按照順序找到對應的資料為止 單向鍊錶就像是火車,所有的節點串聯成...

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...

鍊錶 初識鍊錶

鍊錶 前言 小弟初學資料結構,有錯誤的地方望大家不吝賜教 認識鍊錶 列表相比陣列更具有優勢,鍊錶不同於資料和其他資料結構依靠位置來進行訪問或者其他操作,如陣列是依靠下表來運算元據。而鍊錶是通過關係來尋找或者運算元據。鍊錶的特性 插入 和 刪除 效率高,只需要變更指向的鏈結點即可。但是隨即訪問操作的效...