C语言,单链表合并问题,求大神解答,着急,在线等...
要求:建立两个单链表,头结点分别为L1和L2,写一个完整程序将L2链表链到L1链表之后。我写的代码如下:#include<stdio.h>#include<stdlib....
要求:建立两个单链表,头结点分别为L1和L2,写一个完整程序将L2链表链到L1链表之后。我写的代码如下:#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef int DataType;typedef struct node{ DataType data; struct node *next;}ListNode,*LinkList;/*LinkList InitList(LinkList L1){ L1=(ListNode *)malloc(sizeof(ListNode)); if(L1==NULL) { printf("分配存储空间失败!\n"); exit(1); } L1->next=NULL; return L1;}LinkList InitList(LinkList L2){ L2=(ListNode *)malloc(sizeof(ListNode)); if(L2==NULL) { printf("分配存储空间失败!\n"); exit(1); } L2->next=NULL; return L2;}*/LinkList CreatListL(){ /*尾插法建立单链表*/ DataType x; LinkList L1=(ListNode *)malloc(sizeof(ListNode)); if(L1==NULL) { printf("分配空间失败!"); exit(1); } ListNode *s,*r; r=L1; printf("请从键盘输入整型数建立链表,以0表示结束\n"); scanf("%d",&x); while(x!=0)/*以0表示输入结束*/ { s=(ListNode *)malloc(sizeof(ListNode));/*为新插入的结点申请空间*/ if(s==NULL) { printf("分配空间失败!"); exit(1); } s->data=x; r->next=s; r=s; scanf("%d",&x); } L2=CreatListL(); r->next=L2->next;;/*单链表的最后一个指针为空*/ return L1;}LinkList CreatListL(){ /*尾插法建立单链表*/ DataType x; LinkList L2=(ListNode *)malloc(sizeof(ListNode)); if(L2==NULL) { printf("分配空间失败!"); exit(1); } ListNode *s,*r; r=L2; printf("请从键盘输入整型数建立链表,以0表示结束\n"); scanf("%d",&x); while(x!=0)/*以0表示输入结束*/ { s=(ListNode *)malloc(sizeof(ListNode));/*为新插入的结点申请空间*/ if(s==NULL) { printf("分配空间失败!"); exit(1); } s->data=x; r->next=s; r=s; scanf("%d",&x); } r->next=NULL;/*单链表的最后一个指针为空*/ return L2;}void PrintList(LinkList L1){ ListNode *p; p=L1->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n");}int main(){ LinkList L1,L2; /*L1=InitList(L1); L2=InitList(L2);*/ L1=CreatListL(); /*L2=CreatListL();*/ printf("链表L为:"); PrintList(L1); return 0;}
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询