9.20学习总结
今日进展
实现“两个有序链表序列的合并”
题目要求:将两个链表表示的递增整数序列合并为一个非递减的整数序列。
源代码:
#include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node *PtrToNode; struct Node { ElementType Data; PtrToNode Next; }; typedef PtrToNode List; List Read(); void Print( List L ); List Merge( List L1, List L2 ); int main() { List L1, L2, L; L1 = Read(); L2 = Read(); L = Merge(L1, L2); Print(L); Print(L1); Print(L2); return 0; } List Merge( List L1, List L2 ) { List pa,pb,p; pa=L1->Next; pb=L2->Next; List L=(List)malloc(sizeof(List)); p=L; while(pa&&pb) { if(pa->Data>pb->Data) { p->Next=pb; pb=pb->Next; } else{ p->Next=pa; pa=pa->Next; } p=p->Next; } p->Next=pa?pa:pb; L1->Next=NULL; L2->Next=NULL; return L; }