C语言单链表写两个菜单,用C语言把两个单链表合成一个新链表,代码写到一半写不下去,求帮忙?...

#include "stdio.h"

#include "stdlib.h"

#define LIST_INIT_SIZE 100

#define OVERFLOW -2

#define  ERROR 0

#define OK  1

#define LISTINCREMENT 10

typedef int ElemType;

typedef int Status;

typedef struct sqlist

{   ElemType*elem;

int listlength;

int listsize;

}SqList;

Status InitList_Sq(SqList*L)

{  L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!L->elem)  exit(OVERFLOW);

L->listlength=0;

L->listsize=LIST_INIT_SIZE;

return OK;

}

int Listlength (SqList*L)

{   return L->listlength;

};

int GetElem(SqList*L,int i,ElemType e)

{

if(0listlength)

return e=L->elem[i-1];

else

return  ERROR;

}

Status ListInsert_Sq(SqList*L,int i ,ElemType e)

{

ElemType *newbase,*p,*q;

if(i<1||1>L->listlength+1) return ERROR;

if(L->listlength>=L->listsize)

{  newbase = (ElemType *)realloc(L->elem,(L->listsize+LISTINCREMENT) * sizeof (ElemType));

if(!newbase) exit(OVERFLOW);

L->elem=newbase;

L->listsize=L->listsize+LISTINCREMENT;

}

q=&(L->elem[i-1]);

for(p=&(L->elem[L->listlength-1]);p>=q;--p)

*(p+1)=*p;

L->elem[i-1]=e;

++L->listlength;

return OK;

}

void MergeList(SqList La,SqList Lb,SqList*Lc)

{

ElemType i,j,k,La_len,Lb_len,ai,bj;

InitList(Lc);

i=j=1;k=0;

La_len=ListLength(La);Lb_len=ListLength(Lb);

while((i<=La_len)&&(j<=Lb_len))

{GetElem(La,i,ai); GetElem(Lb,j,bj);

if(ai<=bj){ListInsert(Lc,++k,ai);++i;}

else

{ListInsert(Lc,++k,bj);++j;}

}

while(i<=La_len)

{

GetElem(La,i++,ai);ListInsert(Lc,++k,ai);

}

while(j<=Lb_len)

{

GetElem(Lb,j++,bj);ListInsert(Lc,++k,bj);

}

}

void main()

{

SqList La;

if(InitList_Sq(&La)==OK)

printf("顺序表La初始化成功");

else

printf("顺序表La初始化失败");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值