c语言数据结构线性表插入和删除实现代码错误在哪

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAXSIZE 100;
#define TURE 1
#define ERROR 0
typedef Elmetype int
typedef struct{
Elmetype *elme;
int length;
}Sqlist;
int initlist(Sqlist *L){
L->elme=(Elmetype *)malloc(MAXSIZE*sizeof(Elmetype));
if(!L->elme) return ERROR;
L->length=0;
return TURE;
}
int insertlist(Sqlist *L,int i,Elmetype e){
if(i<1||i>L->length+1) return ERROR;
if(L->elme+L->length-1>=L->MAXSIZE) return ERROR;
Elmetype *P,*q;
q=L->elme+i-1;
p=L->elme+L->length-1;
for(;p>=q;p--){
*(p+1)=*P;
}
*q=e;
++L->length;
return TURE;
}
int deletelist(Sqlist *L,int i){
if(i<1||i>L->length+1) return ERROR;
if(L->length==0) return ERROR;
Elmetype *P,*q;
q=L->elme+i-1;
p=L->elme+L->length-1;
for(;q<=p;q++){
*q=*(q+1);
}
q=L->elme+i-1;
free(q);
--L->length;
}
void displaylist(Sqlist L){
int i;
for(i=0;i<=MAXSIZE;i++){
printf("%d\t",L->elme[i]);
}
}
int main(void){
Sqlist *L;
L=(Elmetype *)malloc(MAXSIZE*sizeof(Elmetype));
Elmetype e;
int i;
initlist(L);
printf("Enter i:");
scanf("%d",&i);
while(i<1000){
printf("Enter e:");
scanf("%d",&e);
insertlist(L,i,e);
printf("Enter i:");
scanf("%d",&i);
}
displaylist(L);
printf("Enter i:");
scanf("%d",&i);
while(i<1000){
deletelist(L,i);
printf("Enter i:");
scanf("%d",&i);
}
displaylist(L);
return 0;
}错误在哪

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAXSIZE 100
#define TRUE 1
#define ERROR 0

typedef int ElemType;

typedef struct list {
ElemType *elme;
int length;
}Sqlist;

int initlist(Sqlist *L) {
L->elme = (ElemType *)malloc(MAXSIZE * sizeof ElemType);
if(L->elme == NULL) return ERROR;
L->length = 0;
return TRUE;
}

int insertlist(Sqlist *L,int pos,ElemType e) {
int i;
if(L->length == 0) { // 第一元素无条件插入
L->elme[0] = e;
L->length = 1;
return TRUE;
}
if(L->length >= MAXSIZE) {
printf("表满。length = %d。\n",L->length);
return ERROR;
}
if(pos < 1 || pos > L->length) {
printf("插入位置不合理。\n");
printf("表长:%d,位置:%d\n",L->length,pos);
printf("元素%d未能插入。\n",e);
return ERROR;
}
for(i = L->length; i > pos - 1; --i)
L->elme[i] = L->elme[i - 1];
L->elme[pos - 1] = e;
++L->length;
return TRUE;
}

int deletelist(Sqlist *L,int pos) {
int i;
if(pos < 1 || pos > L->length) {
printf("删除位置不合理。\n");
printf("表长:%d,位置:%d\n",L->length,pos);
printf("第%d个元素未能删除。\n",pos);
return ERROR;
}
for(i = pos - 1; i < L->length - 1; ++i)
L->elme[i] = L->elme[i + 1];
--L->length;
return TRUE;
}

void displaylist(Sqlist *L) {
int i;
for(i = 0;i < L->length; i++)
printf("%d ",L->elme[i]);
printf("\n");
}

int main(void){
Sqlist *L = (Sqlist *)malloc(sizeof(Sqlist));
int i,n,pos,res;
initlist(L);
printf("Enter n:");
scanf("%d",&n);
srand((unsigned)time(NULL));
for(i = 0; i < n; ++i) {
res = insertlist(L,i,rand() % 100);
if(res == ERROR) --i;
}
displaylist(L);
printf("Enter pos:");
scanf("%d",&pos);
deletelist(L,pos);
displaylist(L);
return 0;
}

追问

请问你用的这个编程软件在哪下的能发个给我?

追答

我用的是VC++ 6.0,你应该有的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-30
typedef Elmetype int,是typedef int Elmetype ;追问

还有其他错误运行不了啊

相似回答