怎么给c++链表中结点的数据(不止一个)进行排序???得到里面的数据排名。不要求改变链表结点的顺序。
怎么给c++链表中结点的数据(不止一个)进行排序???得到里面的数据排名。不要求改变链表结点的顺序。刀声2009能不能讲详细一点,那怎么给里面的数据进行排名呢?...
怎么给c++链表中结点的数据(不止一个)进行排序???得到里面的数据排名。不要求改变链表结点的顺序。
刀声2009 能不能讲详细一点,那 怎么给里面的数据进行排名呢? 展开
刀声2009 能不能讲详细一点,那 怎么给里面的数据进行排名呢? 展开
4个回答
展开全部
不要另建链表,链表是顺序访问的,对移动,插入,交换等操作很麻烦!!,建一个和链表等长的数组就可以了,先把链表复制进数组,把链表的顺序访问,变成数组的随机访问,那么多排序算法随你用, 冒泡,选择,简单快速,希尔......
如果用插入排序算法,则不用复制链表到数组,只要准备一个空数组,在顺序访问链表的基础上就可完成插入排序(小的插到前面大的放后面,插入过程要比较多次,最简单的就是从头比到有结果为止,或者用折半查找,因为里面已经是有序序列),这个应该是个好办法,应该懂吧?
如果用插入排序算法,则不用复制链表到数组,只要准备一个空数组,在顺序访问链表的基础上就可完成插入排序(小的插到前面大的放后面,插入过程要比较多次,最简单的就是从头比到有结果为止,或者用折半查找,因为里面已经是有序序列),这个应该是个好办法,应该懂吧?
展开全部
只有一种办法,
建立另一个链表,存储你的链表的各个数据的地址。
stuct yours{
type data;
yours *next;
}
stuct node{
yours * point;
node* next;
}
建立另一个链表,存储你的链表的各个数据的地址。
stuct yours{
type data;
yours *next;
}
stuct node{
yours * point;
node* next;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正在学呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意 wk_wangkui 大侠的。。。。。他的方法效率高。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询