zhofida159 2022-01-05 21:45 采纳率: 72.7%
浏览 37
已结题

C++ 为什么指针一片狼藉?我找不出来哪里指针跑飞了

构造两个带有表头结点的有序单链表La、Lb,编写程序实现将Lb融合到La中。 融合的思想是:依次将Lb的每一个结点按数值大小插入到La中。
输入数据为两行有序数据,分别有5个数据。建立两个链表并将每行数据存入链表结点的数据域。
输出为一行10个数据,每个数据之间有一个空格。要求在融合数据后再遍历链表La,输出其数据域的值。

img


#include <iostream>
#include <cmath>
#include <string>
#include <string.h>
#include <iomanip>
#include <fstream>
using namespace std;

struct node {
    int data;
    node *next;
};

struct list {
    node *head;
    int len;
};

void begin(list &a, int n) {
    node *ptr = new node;
    ptr->data = n;
    ptr->next = NULL;
    if (a.head == NULL) {
        a.head = ptr;
        a.len = 1;
    } else {
        node *pt = a.head;
        while (pt->next != NULL) {
            pt = pt->next;
        }
        pt->next = ptr;
        a.len++;
    }
    delete ptr;
}

void sort(list &a, list &b) {
    node *pt = b.head;
    node *ptr = a.head;
    while (pt) {
            node *ptr = a.head;
            if ((pt->data) < (ptr->data) ) {
            node *temp = pt;
            temp->next = ptr;
            a.head = temp;
            pt = pt->next;
            continue;
        }
        while (pt->data > ptr->data) {
            ptr = ptr->next;
        }
        node *temp = pt;
        temp->next = ptr->next;
        ptr->next = temp;
        pt = pt->next;
    }
}

void show(list &a) {
    node *ptr = new node;
    ptr = a.head;
    for (int j = 0; j < 10; j++) {
        cout << ptr->data << " ";
        ptr = ptr->next;

    }
    delete ptr;
}


int main() {
    int i = 0, n = 0;
    list a, b;
    a.head = NULL;
    a.len = 0;
    for (i = 0; i < 5; i++) {
        cin >> n;
        begin(a, n);
    }
    b.head = NULL;
    b.len = 0;

    for (i = 0; i < 5; i++) {
        int n = 0;
        cin >> n;
        begin(b, n);
    }
    show(a);


    return 0;
}
  • 写回答

1条回答 默认 最新

  • 拂面清风三点水 2022-01-05 22:17
    关注

    45和54行,temp->next丢了

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

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 专家已采纳回答 1月8日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 没输出运行不了什么问题
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享
  • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
  • ¥15 51嵌入式入门按键小项目
  • ¥30 海外项目,如何降低Google Map接口费用?
  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)