m0_65699050 2022-11-05 16:02 采纳率: 80%
浏览 26
已结题

单链表冒泡排序异常退出

问题遇到的现象和发生背景

数据结构单链表冒泡排序,异常退出

用代码块功能插入代码,请勿粘贴截图
#include<iostream>
#define OK 1
#define FALSE 0

using namespace std;

typedef int status;
typedef struct LNode{
    int data;
    struct LNode * next;
}LNode ,*LinkList;
status output_LinkList(LinkList L) {
    LNode* p = L->next;
    printf("\n链表中的数据为:");
    while (p) {
        cout << p->data << " ";
        p = p->next;
    }
    cout << endl;
    //    p=p->next;
    return OK;
}
status init_LinkList1(LinkList& L)
{
    int n;
    printf("请输入将要建立的链表的长度:");
    cin >> n;
    cout << endl;
    printf("请输入值:");
    LNode* newbase = new LNode;
    if (newbase) {
        L = newbase;
        L->next = 0;
        //    printf("建立头节点成功\n");
    }
    else return 0;//建立头节点 
    LNode* r = L; //尾指针 
    LNode* p;
    for (int i = 1; i <= n; ++i)
    {
        LinkList newbase = new LNode;
        if (newbase)
        {
            p = newbase;
            cin >> p->data;
            p->next = NULL;
            r->next = p;
            r = p;
            //    printf("赋值成功\n");
        }
    }
    //r->next = 0;
    printf("赋值成功\n");
    return OK;
}
int main()
{
    cout << "初始化表1" << endl;
    LinkList L1=0;
    init_LinkList1(L1);
    cout << "初始化表2:" << endl;    
    LinkList L2=0;
    init_LinkList1(L2);
       


    LNode* p = L1->next;
    LNode* q = L2->next;
    int count1 = 1;
    int count2 = 1;


    while (p->next != 0)
    {
        p = p->next;
        count1++;
    }
    while (q->next != 0)
    {
        q = q->next;
        count2++;
    }



    p->next =L2->next;
    int count = count1 + count2;


LNode* s = L1->next->next;
    int n = 0;
    LNode* r = L1->next;
    for (int i = 0; i < count - 1; ++i)
    {
        n = count - 2- i;
        while (n--)
        {

            if (r->data > s->data)        //递减排序
            {
                int t = 0;
                t = r->data;
                r->data = s->data;
                s->data = t;
                cout << "交换执行" << endl;
            }
            r = r->next, s = s->next;
        }
    }
    output_LinkList(L1);
}

运行结果及报错内容

异常退出

我的解答思路和尝试过的方法

  • 写回答

2条回答 默认 最新

  • m0_65699050 2022-11-06 10:34
    关注

    已解决:问题在计数器和指针回拨

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 11月5日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效