两个有序链表序列的合并
来源:互联网 发布:老婆胸大的体验知乎 编辑:程序博客网 时间:2024/04/27 18:57
两个有序链表序列的合并
#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 ); /* 细节在此不表;空链表将输出NULL */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 Read(){ int a,n,i; List L,p,r; L = (List)malloc(sizeof(struct Node)); L->Next = NULL; r = L; scanf("%d",&n); if(n) { for(i=1;i<=n;i++) { scanf("%d",&a); p=(List)malloc(sizeof(struct Node)); p->Data = a; r->Next = p; r = p; } } r->Next = NULL; return L;}void Print( List L ){ List p; p = L->Next; if(!p) { printf("NULL"); } else { while(p) { printf("%d ",p -> Data); p = p -> Next; } } printf("\n");}List Merge( List L1, List L2 ){ List p,l1,l2,l; l=(List)malloc(sizeof(struct Node)); l1=L1->Next; l2=L2->Next; p = l; while(l1 && l2) { if(l1->Data <= l2->Data) { p->Next = l1; p = l1; l1 = l1->Next; } else { p->Next = l2; p = l2; l2 = l2->Next; } } p->Next = l1 ? l1:l2; L1->Next = NULL; L2->Next = NULL; return l;}
阅读全文
0 0
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 两个有序链表序列的合并
- 链表使用: 两个有序链表序列的合并
- 链表练习:两个有序链表序列的合并
- PAT2-11. 两个有序链表序列的合并
- PAT1017. 两个有序链表序列的合并(15)
- PAT 两个有序链表序列的合并
- 【C】两个有序链表序列的合并
- 引用类型总结——ECMAScript
- 九度[1103]-二次方程计算器
- LeetCode 121. Best Time to Buy and Sell Stock
- 练习5: 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- Python:AttributeError: ‘module’ object has no attribute ‘ArgumentParser’
- 两个有序链表序列的合并
- 包与模块与类
- 穿插纸条 (第55-72关)曼哈顿距离的奇偶性
- 【Java利器之】在Eclipse For Mac中配置Lombok
- 什么是互联网产品运营
- CodeForces
- 关于CentOS-7的一些问题
- RYU出现cannot drop_packet. unsupported version. 4 的解决方法
- Collection容器之List初探