回 帖 发 新 帖 刷新版面

主题:链表操作~~

要求用链表排序,我想输一个排一个,以下是我编的,可是,结果就是出不来,我怀疑是while语句最后那两行出问题,可是我不知道到底是为什么错,帮忙看一下吧,谢谢!
当我用p指向新建的结点,并把它插进链表之后,我可以在申请内存空间吗?就像我做的那样,要不要delete?我尝试加过,可是连那句"依次排序为"都出不来了...请高手指点,谢谢!
#include <iostream>
using namespace std;
struct Node
{
    double content;
    Node *next;
};
int main()
{
    Node *head=NULL;//创建新链表;
    Node *p=new Node;
    cout<<"请输入要排序的数,以-1结束:"<<endl;
    cin>>p->content;//输入第一个数;
    head=p;
    p->next=NULL;//第一个结点创建完毕;
    Node *q=new Node;
    cin>>q->content;
    while (q->content!=-1)
    {    bool done=false;
        Node *x=head;
        if (x->content>q->content)//看新输入的数是否应该安排在第一个结点;
        {    q->next=x;
            head=q;
            done=true;
        }
        else//新输入的数插在当中;
        {    Node *r=head;
            x=x->next;
            for (;x!=NULL;x=x->next,r=r->next)
                if (q->content < x->content)
                {    q->next=x;
                    r->next=q;
                    done=true;
                    break;
                }
        }
        if (!done)//新输入的数插在最后;
        {    x=q;
            q->next=NULL;
        }
        Node *q=new Node; 
        cin>>q->content;
    }
    Node *s=new Node;
    int count=0;
    cout<<"依次排序为:"<<endl;
    for (s=head;s->next!=NULL;s=s->next)//输出;
    {    cout<<s->content<<'\t';
        count++;
        if (count%6==0)
            cout<<endl;
    }
    cout<<endl;
    return 0;
}

回复列表 (共2个回复)

沙发

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

板凳

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料
网商咨询 摩客天宇QQ 909065437 

我来回复

您尚未登录,请登录后再回复。点此登录或注册