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 ;追问

还有其他错误运行不了啊

c语言数据结构线性表插入和删除实现代码错误在哪
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(...

数据结构_线性表插入问题C语言 为什么插入这块代码跑不出来
int main (void) {SqList L;int k = 0,j,x,y;char choose;int i = init_sqList(&L);\/\/printf("length:%d",i); \/\/初始化printf("请输入元素的个数:");scanf("%d",&k);input_sq(&L,k);printf("请输入要查找的元素:");scanf("%d",&j);find_sq(&L,j);printf("是否要...

【数据结构】每种结构都具备三个基本运算:插入、删除和查找,这种说法为 ...
一般而言,并不是所有的数据结构都有这三种基本运算 比如多维数组,就没有插入和删除,可以看看,哪怕是二维数组,如果删除其中某个元素,用行还是列来顶替?顶替后,二维数组不就出现缺口了?!再比如说栈和队列,一般并不需要查找(其实原则上说也不能查找,因为逻辑上其访问点被严格限制在线性表的端...

数据结构完整版实验报告
实验的主要目标是通过实现线性表的基本操作,掌握顺序存储结构的应用。实验要求使用一种高级编程语言完成源代码编写,并确保代码正确无误。实验内容包括:建立一个含有n个元素的顺序表,实现顺序表的初始化、插入和删除操作。具体来说,实验将创建一个包含4个元素的顺序表,然后在第四个位置插入数字9,接着...

C语言数据结构初学者,codeblocks报错
};\/* Initlist_Sq *\/int ListInsert_Sq( SqList L, int i, ElemType e ){\/* * 在顺序线性表L中第i个位置之前插入新的元素e, * i的合法值为1<=i<=ListLength_Sq(L)+1 *\/ElemType *p, *q, *newbase;\/* 定义指针 *\/if ( i < 1 || i > L.length + 1 )return(ERROR)...

用C语言创建一个空线性表,并完成插入删除等基本操作,可就是不知道怎么...
亲,你用的是顺序表的结构体和初始化,其它用的却是链表的操作,建议多看看数据结构的书。

下面关于线性表的叙述中,错误的是哪一个
答案是B.A. 顺序存储占用连续空间,就像数组一样。B. 顺序存储的时候,插入和删除需要移动插入和删除点后面的数据。不方便。C. 链接存储不需连续空间,就像LinkedList的实现一样,一个结点的next指针指向下一个元素的位置。D.链接存储时,插入和删除只需要修改指针的指向结点即可。

c语言数据结构题,请问哪出错了?(可能是void addpolyn(polynomail &Pa...
对了,楼主,是void addpolyn(polynomail &Pa,polynomail &Pb)出错,当pa的幂小于pb时应该把pb插入pa前面(反之同理),pb下移,你刚好搞反,改了再试试 你的程序看起来很吃力,我没全部看完,addpolyn最后一句,既然pa为空哪来的pa->next?

c语言数据结构线性表求解
i > L->length) { printf("The position is mistake!\\n");printf("插入数据%d失败。\\n",e);return;}for(k = L->length;k >= i;k--) L->data[k] = L->data[k - 1];\/* 结点移动 *\/L->data[i - 1] = e;L->length++;}\/\/删除元素int sqListDelete(SeqList *L,...

数据结构打怪之路 -- 顺序表的增删查改 (C语言实现)
在C语言中,动态顺序表的实现包括结构定义,初始化时设置初始容量5和扩容倍数2,初始化函数分配内存;检查容量时,当size等于capacity时进行扩容,注意避免内存泄漏;插入操作涉及在头部、尾部和指定位置插入,涉及元素移动和size更新。删除操作则有头删、尾删和指定位置删,无需缩容,因为缩容和扩容均会带来...

相似回答