Chris Brown 2020-02-09 12:18 采纳率: 100%
浏览 278

C语言归并有序单链表的问题

自己写了一个归并两个有序单链表成为一个有序单链表的程序,奈何运行没有结果。
求教各位网友,本人学生,望不吝赐教。

#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
        int data;
        struct Node *next;
    } Node;
Node* creatNode(int i)
{
    Node *a = (Node *)malloc(sizeof(Node));
    a->data = i;
    a->next = NULL;
    return a;
}
void insert(Node* p,int k){
    Node* insertion;
    insertion = creatNode(k);
    while(p->next!=NULL){
        p = p->next;
    }
    p->next = insertion;
}
void merge(Node*a,Node*b,Node**c)
{
    Node *p, *q;    //p和q指针分别指向a和b中最小的元素
    p = a->next;
    q = b->next;
    *c = a;
    free(b);
    while(p!=NULL&&q!=NULL){
        if(p->data<=q->data){
            insert(*c, p->data);
            p = p->next;
        }
        else{
            insert(*c, q->data);
            q = q->next;
        }
    }
    while(p!=NULL){
        insert(*c, p->data);
        p = p->next;
    }
    while(q!=NULL){
        insert(*c, q->data);
        q = q->next;
    }
}
int main()
{
    Node *a = creatNode(0);
    insert(a, 2);
    insert(a, 4);
    insert(a, 6);

    Node *b = creatNode(0);
    insert(b, 1);
    insert(b, 3);
    insert(b, 5);

    Node *c = creatNode(0);
    merge(a, b, &c);

    while(c!=NULL){
        printf("%d\t", c->data);
        c = c->next;
    }
    getchar();
    return 0;
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2020-02-09 13:03
    关注

    一样的问题,刚回答过,这是你的同学?

    https://ask.csdn.net/questions/1053826

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备