卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c++鏈表 怎樣將順序表和鏈表合并成一個有序表?

怎樣將順序表和鏈表合并成一個有序表?這個問題最麻煩之處在于內(nèi)存的分配。你用C還是C ?C 的話,單鏈表用list結(jié)構(gòu),順序表用vector結(jié)構(gòu),假設二者分別為list<int> a和vec

怎樣將順序表和鏈表合并成一個有序表?

這個問題最麻煩之處在于內(nèi)存的分配。你用C還是C ?

C 的話,單鏈表用list結(jié)構(gòu),順序表用vector結(jié)構(gòu),假設二者分別為list<int> a和vector<int> b。后面就容易了,

while (!a.empty())

{

b.push_back(a.front())

a.pop_front()

}

順序表的內(nèi)存分配問題STL會自行解決的。

如果是C就有點辛苦了,比較直觀的做法是先把鏈表從頭到尾走一遍,算出它的長度,然后分配一個空間,其長度等于單鏈表和順序表長度之和,再把兩個表的內(nèi)容拷進去。稍微優(yōu)化一點的做法是先猜測一個適當?shù)逆湵淼拈L度,然后以此來分配內(nèi)存;如果后來發(fā)現(xiàn)鏈表過長,那么把猜測的長度加倍,重新分配內(nèi)存。