#include <stdio.h>
#include <stdlib.h>
/** 习题2.5 两个有序链表序列的合并 (15 分)
*
* L1和L2是给定的带头结点的单链表,
*其结点存储的数据是递增有序的;
*函数Merge要将L1和L2合并为一个非递减的整数序列。
*应直接使用原序列中的结点,
*返回归并后的带头结点的链表头指针。
*
*/
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(){
List head,pnew,ptail;
pnew=(List)malloc(sizeof(struct Node));
pnew->Next=NULL;
head=pnew;
ptail=pnew;
int n,i=0;
scanf("%d",&n);
for(i;i<n;i++){
pnew=(List)malloc(sizeof(struct Node));
scanf("%d",&pnew->Data);
ptail->Next=pnew;
ptail=pnew;
ptail->Next=NULL;
}
return head;
}
void Print( List L ){
List p;
for(p=L->Next;p;p=p->Next){
printf("%d ",p->Data);
}
printf("\n");
}
List Merge( List L
两个有序链表序列的合并
最新推荐文章于 2023-06-07 19:07:50 发布