线性表的顺序表示
#include <stdio.h>
#include <stdlib.h>
#define Linitsize 100
#define Lincrement 10
typedef struct
{
char * elem;
int listlength;
int listsize;
}List;
int main()
{
int Init(List &L);
int ListInsert(List &L,int i,char elem);
List l ;
Init(l);
ListInsert(l,1,'A');
for(int i=0;i<l.listlength;i++)
printf("%s",l.elem[i]);
return 0;
}
int Init(List &L)
{
L.elem=(char *)malloc(sizeof(char)*Linitsize);
if(!L.elem)exit(0);
L.listlength=0;
L.listsize=Linitsize;
return 0;
}
int ListInsert(List &L,int i,char elem)
{
if(i<1||i>L.listlength+1)
{
printf("i值不合法");
exit(0);
}
if(L.listlength>=Linitsize)
{
char * newbase = (char*)realloc(L.elem,(Linitsize+Lincrement)*(sizeof(char)));
if(!newbase)exit(0);
L.elem=newbase;
L.listlength+=Lincrement;
L.listsize=Lincrement;
}
char * p;
char * q;
p= &(L.elem[i-1]);//
for(q =&(L.elem[L.listlength-1]) ;q>=p;--q)
{
*(q+1)=*q;
}
*p=elem;
L.listlength++;
return 0;
}
运行报错
[解决办法]
给分吗?楼主?
[解决办法]
楼主的数据结构是 严蔚敏 和 吴伟民编写的吧
[解决办法]
方便LZ结贴。
[解决办法]
恭喜LZ,解决问题,哈哈
[解决办法]