怎样将顺序表和链表合并成一个有序表?
这个问题最麻烦之处在于内存的分配。你用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++链表 怎样将顺序表和链表合并成一个有序表?,如若转载,请注明出处:https://www.saibowen.com/tougao/22060.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。