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日

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端