izumi_tan 2016-06-20 23:56 采纳率: 42.9%
浏览 1544
已采纳

求解,如何用链表实现冒泡排序?链表里面的数据交换如何实现?

#include
using namespace std;
struct ListNode
{
int num;
ListNode *next;
};

ListNode *create(int n)
{ListNode *p,*tail=0,*head=0;
for(int j=0;j {p=new ListNode;cin>>p->num;
p->next=0;
if(head==0)head=p;
else tail->next=p;
tail=p;
}
return head;
}

void Bubble_sort(int n)
{ListNode *now=0,*ne=0,*tail=0,*head=0;
int temp;
head=tail=create(n);
for(int i=1;i {tail=head;
for(int j=1;j {now=tail;
ne=tail->next;
if((now->num)>(ne->num))
{
temp=(now->num);
(now->num)=(ne->num);
(ne->num)=temp;
tail=tail->next;
}
}
}
tail=head;
for(int k=0;k {
coutnum<<' ';
tail=tail->next;
}
}
int main()
{
int leng;
cin>>leng;
Bubble_sort(leng);

}

  • 写回答

1条回答 默认 最新

  • 小灸舞 2016-06-21 01:41
    关注

    两个错误:
    1.内存j循环for(int j=1;j<=n-i;n++)应该是for(int j=1;j<=n-i;j++)
    2.tail=tail->next;应该放到if外面,而不是if里面

     #include<iostream>
    using namespace std;
    struct ListNode
    {
        int num;
        ListNode *next;
    };
    
    ListNode *create(int n)
    {
        ListNode *p,*tail=0,*head=0;
        for(int j=0;j<n;j++)
        {
            p=new ListNode;
            cin>>p->num;
            p->next=0;
            if(head==0)
                head=p;
            else 
                tail->next=p;
            tail=p;
        }
        return head;
    }
    
    
    void Bubble_sort(int n)
    {
        ListNode *now=0,*ne=0,*tail=0,*head=0;
        int temp;
        head=tail=create(n);
        for(int i=1;i<n;i++)
        {
            tail=head;
            for(int j=1;j<=n-i;j++)
            {
                now=tail;
                ne=tail->next;
                if((now->num)>(ne->num))
                {
                    temp=(now->num);
                    (now->num)=(ne->num);
                    (ne->num)=temp;
                }
                tail=tail->next;
            }
        }
        tail=head;
        for(int k=0;k<n;k++)
        {
            cout<<tail->num<<' ';
            tail=tail->next;
        }
    }
    int main()
    {
        int leng;
        cin>>leng;
        Bubble_sort(leng);
    
    }
    
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题