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