1. 程式人生 > 其它 >題目:連線兩個連結串列。

題目:連線兩個連結串列。

技術標籤:codeblockC

題目:連線兩個連結串列。

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct{
	int data;
	struct LNode *next;
}LNode,*LinkList;
LinkList CreatList(int n);
void print(LinkList s);
LinkList connect(LinkList s1,LinkList s2);
int main()
{
	int n;
	LinkList head1=
NULL,head2=NULL,head3=NULL; printf("1.請輸入一個數n:\n"); scanf("%d",&n); head1=CreatList(n); printf("2.請輸入一個數n:\n"); scanf("%d",&n); head2=CreatList(n); printf("輸出連結串列1:\n"); print(head1);printf("\n"); printf("輸出連結串列2:\n"
); print(head2);printf("\n"); head3=connect(head1,head2); printf("輸出連線後的連結串列:\n"); print(head3); } LinkList CreatList(int n) { int i; LinkList p,q,L; L=(LNode*)malloc(sizeof(LNode)); if(!L) printf("error!"); L->next=NULL; q=L; for(i=1;i<=n;i++){ p=(LinkList)
malloc(sizeof(LNode)); printf("請輸入第%d個元素的值",i); scanf("%d",&(p->data)); p->next=NULL; q->next=p; q=p; } return L; } void print(LinkList s) { LinkList L; L=s->next; while(L!=NULL){ printf("%d ",L->data); L=L->next; } } LinkList connect(LinkList s1,LinkList s2) { LinkList L=s1; while(s1->next!=NULL) s1=s1->next; s1->next=s2->next; return L; }

執行結果:
在這裡插入圖片描述