数据结构严蔚敏整理过后的顺序线性表调试怎么又22个错误
#include<stdio.h>#include<stdlib.h>
#define LIST_INIT_SIZE 100 //线性表储存空间的初始分配
#define LISTINCREMENT 10 //线性表储存空间的分配增量
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}Sqlist;
Status InitList_Sq(Sqlist &L)//构造一个空的线性表L
{
L.elem=(ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
exit(OVERFLOW);//存储分配失败
L.length=0; //空表长度为0
L.listsize=LIST_INIT_SIZE;//初始存储容量
return OK;
}//InitList_Sq
Status ListInsert_Sq(Sqlist &l,int i,ElemType e)//在顺序线性表L中第i个位置之前插入新的元素e,
//i的合法值为1=<i=<ListLength_Sq(L)+1
{
if(i<1||i>L.length+1)
return ERROR;//i值不合法
if(L.length>=L.listsize)//当前空间已满,增加分配
{
newbase=(ElemType * )realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)
exit(OVERFLOW);//存储分配失败
L.elem=newbase;//新基址
L.listsize+=LISTINCREMENT;//增加存储容量
}
q=&(L.elem[i-1]);//q为插入位置
for(p=&(L.elem[L.length-1]);p>=q;--p)
*(p+1)=*p;//插入位置及之后的元素右移
*q=e;//插入e
++L.length;//表长增1
return OK;
}//ListInsert_Sq
Status ListDelete_Sq(Sqlist &L,int i,ElemType &e)//在顺序线性表L中删除第i个元素,并用e返回其值
//i的合法值为1=<i=<ListLength_Sq(L)
{
if((i<1)||i>(L.length))
return ERROR;//i值不合法
p=&(L>elem[i-1]);//p为被删除的元素的位置
e=*p;
q=L.elem+L>length-1;//表尾元素的位置
for(++P;p<=q;++p)
*(p-1)=*p;//被删除元素之后的元素左移
--L.length;//表长量减1
return OK;
}//ListDelete_Sq
int LocateElem_Sq(Sqlist L,ElemType e,Status(*ElemType,ElemType))
//在顺序线性表L中查找第1个值与e满足compare()的元素的为序
//若找到,则返回其在L中的位序,否则返回0
{
i=1;//i的初值为第1个元素的位序
p=L.elem;//p的初值为第1个元素的存储位置
while(i<=L.length&&!(*compare)(*p++,e))
++i;
if(i<=L.length)
return i;
else
return 0;
}//LocateElem_Sq
void MergeList_Sq(Sqlist La,Sqlist Lb,Sqlist &Lc)
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
{
pa=La.elem;
pb=Lb.elem;
Lc.listsize=Lc.length=La.length+Lb.length;
pc=Lc.elem=(ElemType * )malloc(Lc.listsize*sizeof(ElemType));
if(!Lc.elem)
exit(OVERFLOW);//存储分配失败
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.lengtn-1;
while(*pa<=pa_last&&pb<=pb_last)
{
//归并
if(*pa<=*pb)
*pc++=*pa++;
else
*pc++=*pb++;
}
while(pa<=pa_last)
*pc++=*pa++ //插入La的剩余元素
while(pb<=pb_last)
*pc++=*pb++;//插入Lb的剩余元素
}//MergeList_Sq
这错误都在哪啊 我用的是codeblocks编译器