| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 266 人关注过本帖
标题:关于链表的插入时的排序,希望朋友们指点下
只看楼主 加入收藏
Mrrr
Rank: 2
等 级:论坛游民
帖 子:15
专家分:72
注 册:2012-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:2 
关于链表的插入时的排序,希望朋友们指点下
这是我写的一个插入时就自动排序,我感觉有点小问题?
程序代码:
Hero *Linked(Hero *p)
{
    S *head,*p1,*p2;
    cout<<"请输入添加信息:";
    p1=(Hero *)malloc(LEN);
    cout<<"Name:";
    cin>>p1->name;
    cout<<"Number:";
    cin>>p1->num;
    int i=0;
    if (p==NULL)//如果传入的链表中地址中没有指向
    {
        head=p1;//把新建的链表地址给头指针
        head->next=NULL;//头指针的节点指向空
        return head;//返回头结点
    }
    while (p!=NULL)//遍历链表
    {
        if (p1->num>p->num)//排序,降序
        {
            if (i==0)//如果插入的链表的num值是最大的
            {
                head=p1;//头指针指向p1
                p1->next=p;//节点指向原头指针
                return head;//返回头指针
            }
            p2->next=p1;//插入的是中间,那么用p2表示遍历的前一个指针指向p1
            p1->next=p;//然后p1指向正在遍历的链表
            return head;//返回头指针
        }
        if (p->next==NULL)//如果是尾指针
        {
            p->next=p1;//遍历的p指向新建链表p1
            p1->next=NULL;//然后p1指向尾结点
            return head;//返回头指针
        }
        i++;//用来判断是否插入到头指针
        p2=p;//遍历前一个地址
        p=p->next;//遍历
    }
}

搜索更多相关主题的帖子: 朋友 
2012-11-26 21:10
Mrrr
Rank: 2
等 级:论坛游民
帖 子:15
专家分:72
注 册:2012-9-4
收藏
得分:0 
注释码全了,最近感觉链表写一遍就忘记了,非要看第一次写的,才写的出来,希望多提提,怎么理解链表。
2012-11-26 21:12
Mrrr
Rank: 2
等 级:论坛游民
帖 子:15
专家分:72
注 册:2012-9-4
收藏
得分:0 
怎么没人阿。。。。。。。


各种蛋疼
2012-11-26 21:46
快速回复:关于链表的插入时的排序,希望朋友们指点下
数据加载中...
 
   



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

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