| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 860 人关注过本帖
标题:单链表能打散重新排序,并按顺序连接吗?
只看楼主 加入收藏
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
单链表能打散重新排序,并按顺序连接吗?
单链表能打散重新排序,并按顺序连接节点吗?
结构体变量中有一个为整型,按这个数值大小重新连接节点。

[此贴子已经被作者于2015-12-22 13:56编辑过]

搜索更多相关主题的帖子: 结构体 
2015-12-22 12:53
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:20 
用插入法应该是可以的,今天正好帮改了一个插入节点的问题,下面的代码可以把节点插入到正确的位置,你要做的就是从第一个节点开始,最初是一个只有一个节点的子链表,每次读入一个节点,将其插入到已经排好的链表中。插完了也就排好了
程序代码:
typedef struct DATA
{
     long num;
     struct DATA *next;
}DATA;


程序代码:
struct DATA *insert(struct DATA *head, struct DATA *d)
{
    struct DATA *p,*p1,*p2;
    p1=head;
    p=d;
    if(head==NULL)
    {
        head=p;
        p->next=NULL;
    }
    else
    {
        while((p1->next!=NULL)&&(p->num>p1->num))
        {
            p2=p1;p1=p1->next;
        }
        if(p->num<=p1->num)
        {
            if(p1==head)
            {
               p2=p1=head;
               head=p;
               head->next=p1;
            }

            else
            {
                p2->next=p;
                p->next=p1;
            }

        }
        else
        {
            p1->next=p;
            p->next=NULL;
        }
    }
    return head;
}


[此贴子已经被作者于2015-12-22 14:55编辑过]

2015-12-22 14:52
快速回复:单链表能打散重新排序,并按顺序连接吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017856 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved