下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
// An highlighted block
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct Node{
int Data;
struct Node *Next;
} *List;
List Read();//读入链表
int main()
{
List L1,L2,L3,LL3;
L1=Read();
L2=Read();
L3=(List)malloc(sizeof(struct LNode));
L3->Next=NULL;
L3->Data=-1;
LL3=L3;
L1=L1->Next;
L2=L2->Next;
while(L1 && L2){//L1,L2均不为空
if(L1->Data < L2->Data){//比较大小
LL3->Next = L1;//L1当前结点数据较小则L1插入LL3
L1 = L1->Next;//L1当前结点后移
}else{//否则对L2进行操作
LL3->Next = L2;
L2 = L2->Next;
}
LL3 = LL3->Next;//LL3当前结点后移
}
while(L1){//若L2已空L1不空,把L1结点顺次插入LL3
LL3->Next = L1;
L1 = L1->Next;
LL3 = LL3->Next;
}
while(L2){//否则对L2进行操作
LL3->Next = L2;
L2 = L2->Next;
LL3 = LL3->Next;
}
int flag = 0;//判断是否已有数据输出
L3 = L3->Next;//跳过头结点
if(!L3) printf("NULL\n");//若之后有节点
while(L3){//当L3不空时
if(flag) printf(" ");//若之前已有元素输出则输出空格
printf("%d",L3->Data);//输出L3当前数据
flag = 1;//已有数据输出,把flag置1
L3 = L3->Next;//当前结点后移
}
return 0;
}
List Read(){
List L, tmp, LL;//L为用来返回的头结点,tmp为暂存当前数据的节点,LL为循环变量
int Data;//暂存数据
L = (List)malloc(sizeof(List));//分配空间,头结点初始化
L->Next = NULL;
L->Data = -1;
LL = L;
scanf("%d",&Data);//先读入第一个数据,若为-1则不必进行后续循环
while(Data!=-1){
tmp = (List)malloc(sizeof(List));//tmp分配空间
tmp->Data = Data;//tmp数据为当前读入的数据
tmp->Next = NULL;//tmp相当于链表最后一个结点,Next为空
LL->Next = tmp;//tmp插入表尾
LL = LL->Next;//当前结点后移
scanf("%d",&Data);//读入下一个数据
}
return L;//返回头结点
}