标题:链表排序问题
取消只看楼主
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
结帖率:100%
已结贴  问题点数:20 回复次数:2 
链表排序问题
这是我自己写的一个将链表元素按从小到大排列的一个函数,但是每次调用的时候都会弹出来一个“已停止工作”的对话框,不知道问题出在哪里,请大家帮个忙,谢了~~~
程序代码:
void array(struct Node *head)
{
    struct Node *p1,*q,*f;
    struct Node *head2,*p2;

    p1 = head;
    p1 = p1->next;
    head2 = p2 = (struct Node *)malloc(sizeof(struct Node));
    head2->next = NULL;

    while(p1 != NULL)
    {
        q = (struct Node *)malloc(sizeof(struct Node));
        q->num = p1->num;

        if(head2 = NULL)
        {
            head2->next = q;
        }

        p2 = head2;
        while(p2->next != NULL && q->num > p2->next->num)
        {
            p2 = p2->next;
        }

        q->next = p2->next;
        p2->next = q;

        f = p1;
        p1 = p1->next;
        free(f);
    }
   
    display(head2);
    release(head2);

    return;
}
display是打印链表元素的函数,这个检验过了没有问题的,release是释放链表元素的函数。
搜索更多相关主题的帖子: 元素 对话框 next 
2012-09-12 22:37
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
得分:0 
回复 2楼 stophin
程序代码:
void release(struct Node *p)
{
    struct Node *q;
    while(p!=NULL)
    {
        q=p;
        p=p->next;
        free(q);
    }
    return;
}

release……
2012-09-13 12:02
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
得分:0 
回复 4楼 阿鞠尼
额,是这里,俩等号应该,唉……
2012-09-13 17:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-381287-1-1.html




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

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