C语言数据结构线性表单链表的基本操作,写好了代码,编译没有错但是运行有错,请哪位大神改一下谢谢 #
C语言数据结构线性表单链表的基本操作,写好了代码,编译没有错但是运行有错,请哪位大神改一下谢谢#include<stdio.h>#include<stdlib.h>#de...
C语言数据结构线性表单链表的基本操作,写好了代码,编译没有错但是运行有错,请哪位大神改一下谢谢
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
int InitList(LinkList &La){ La=(LinkList)malloc(sizeof(LNode));
if(!InitList(La)) return ERROR;
La->next=NULL;
return OK;
}
int ListInsert_L(LinkList &La,int i,ElemType e){
LNode *p; int j;
LinkList s;
p=La;j=0;
while(p&&j<i-1){p=p->next;++j;}
if(!p||j>i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;s->next=p->next;
p->next=s;
return OK;
}//ListInsert_L
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){
LNode *pa,*pb,*pc;
pa=La->next; pb=Lb->next;
Lc=pc=La;
while(pa&&pb){
if(pa->data<=pb->data){
pc->next=pa;pc=pa;pa=pb->next;
}
else{pc->next=pb;pc=pb;pb=pb->next;}
}
pc->next=pa?pa:pb;
free(Lb);
}
void main()
{
int n=10;
LNode *p;
LinkList La,Lb,Lc;
InitList(La);
for(int i=n;i>0;--i)
{
{
p=(LinkList)malloc(sizeof(LNode));
printf(" input numbers: \n");
scanf("%d",&p->data);
p->next=La->next;
La->next=p;
}
InitList(Lb);
for(int j=n;j>0;--j)
{
p=(LinkList)malloc(sizeof(LNode));
printf(" input numbers: \n");
scanf("%d",&p->data);
p->next=Lb->next;
Lb->next=p;
}
InitList(Lc);
MergeList_L(La,Lb,Lc);
} 展开
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
int InitList(LinkList &La){ La=(LinkList)malloc(sizeof(LNode));
if(!InitList(La)) return ERROR;
La->next=NULL;
return OK;
}
int ListInsert_L(LinkList &La,int i,ElemType e){
LNode *p; int j;
LinkList s;
p=La;j=0;
while(p&&j<i-1){p=p->next;++j;}
if(!p||j>i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;s->next=p->next;
p->next=s;
return OK;
}//ListInsert_L
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){
LNode *pa,*pb,*pc;
pa=La->next; pb=Lb->next;
Lc=pc=La;
while(pa&&pb){
if(pa->data<=pb->data){
pc->next=pa;pc=pa;pa=pb->next;
}
else{pc->next=pb;pc=pb;pb=pb->next;}
}
pc->next=pa?pa:pb;
free(Lb);
}
void main()
{
int n=10;
LNode *p;
LinkList La,Lb,Lc;
InitList(La);
for(int i=n;i>0;--i)
{
{
p=(LinkList)malloc(sizeof(LNode));
printf(" input numbers: \n");
scanf("%d",&p->data);
p->next=La->next;
La->next=p;
}
InitList(Lb);
for(int j=n;j>0;--j)
{
p=(LinkList)malloc(sizeof(LNode));
printf(" input numbers: \n");
scanf("%d",&p->data);
p->next=Lb->next;
Lb->next=p;
}
InitList(Lc);
MergeList_L(La,Lb,Lc);
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询