WhateverLF 发表于 2019-4-3 21:26:58

数据结构题(救救孩子吧qvq

用c语言描述数据结构实现两个递增有序的单链表的合并,合并后逆置,要求不能增加多余的存储空间。
步骤:1)初始化单链表
2)创建单链表
3)单链表的合并
4)链表逆置
5)程序调试运行

白轼泽 发表于 2019-4-6 10:51:22

提供给你创建有序链表的方法,剩余的部分你自己好好想想,提示一下,链表的逆转使用到了头插法的原理,代码用c++运行
#include <iostream>
#include <stdio.h>

using namespace std;

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;

void Creat(LinkList &head,int n)//n 输入的数据个数
{
    int i;
    LinkList s,p,q;
    head=new LNode;
    head->next=NULL;
    for(i=1;i<=n;i++)
    {
      s=new LNode;
      printf("请依次输入每一项的数据\n");
      scanf("%d",&s->data);
      p=head;
      q=head->next;
      while(q&&q->data<s->data)//每次从头结点开始遍历,找到数据比它大的那一项,插入其中
      {
            p=q;
            q=q->next;
      }
      p->next=s;
      s->next=q;
    }
}
页: [1]
查看完整版本: 数据结构题(救救孩子吧qvq