输出没结果
#include<ctype.h>
#include<malloc.h> /* malloc()等 */
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>/* exit() */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define ElemType
#define Maxsize 100
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */
/*线性表的单链表存储结构 */
struct LNode
{
int ElemType data[Maxsize];
struct LNode *next;
};
typedef struct LNode *LinkList;
void InitList(LinkList *L)
{ /* 操作结果:构造一个空的线性表L */
*L=(LinkList)malloc(sizeof(struct LNode)); /* 产生头结点,并使L指向此头结点 */
if(!*L) /* 存储分配失败 */
exit(OVERFLOW);
(*L)->next=NULL; /* 指针域为空 */
}
void CreateList(LinkList *L,int n){
struct p;
L=(LinkList*)malloc(sizeof(struct LNode));
L->next=NULL;
for(int i=n;i>0;--i){
LinkList p=(LinkList)malloc(sizeof(struct LNode));
scanf("%d",p->data);
p->next=L->next;
L->next=p;
}
}
void ListTraverse(LinkList L)
{
LinkList p=L->next;
while(p)
{
printf("%3d",p->data);
p=p->next;
}
printf("\n");
}
void MergeList(LinkList La,LinkList Lb,LinkList Lc){
LinkList pa;
LinkList pb;
LinkList pc;
pa=La->next;
pb=Lb->next;
Lc=pc=La;
while(pa&&pb){
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
pc->next=pa?pa:pb;
free(Lb);
}
}
int main()
{
int n,m;
printf("输入表1中的元素个数");
scanf("%d",&n);
printf("输入表2中的元素个数:");
scanf("%d",&m);
LinkList La;
LinkList Lb;
LinkList Lc;
InitList(&La);
InitList(&Lb);
InitList(&Lc);
printf("创建表1\n");
CreateList(&La,n);
printf("创建表2\n");
CreateList(&Lb,m);
MergeList(La,Lb,&Lc);
printf("结果\n");
ListTraverse(Lc);
return 0;
}