2016 - 2024

感恩一路有你

c++链表 怎样将顺序表和链表合并成一个有序表?

浏览量:2621 时间:2021-03-11 08:39:33 作者:admin

怎样将顺序表和链表合并成一个有序表?

这个问题最麻烦之处在于内存的分配。你用C还是C ?

C 的话,单链表用list结构,顺序表用vector结构,假设二者分别为list<int> a和vector<int> b。后面就容易了,

while (!a.empty())

{

b.push_back(a.front())

a.pop_front()

}

顺序表的内存分配问题STL会自行解决的。

如果是C就有点辛苦了,比较直观的做法是先把链表从头到尾走一遍,算出它的长度,然后分配一个空间,其长度等于单链表和顺序表长度之和,再把两个表的内容拷进去。稍微优化一点的做法是先猜测一个适当的链表的长度,然后以此来分配内存;如果后来发现链表过长,那么把猜测的长度加倍,重新分配内存。

c++链表 折叠表链表扣正确位置 对折的规律

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。