线性表的插入和删除实验

来源:百度知道 编辑:UC知道 时间:2024/06/14 00:50:43
以下是根据老师提供的代码修改后可运行的源码...编译运行通过但是到执行printout()语句时显示的一堆不知名的数字 不知哪里有错误请达人指点

#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define maxsize 1024
typedef struct {
datatype data[maxsize];
int last;
}sequenlist;
int insert(L, x, i)
sequenlist *L;
int i;
{ int j;
if ((*L).last==maxsize-1)
{ printf("overflow");
return NULL;
}
else
if (i<1||i>(*L).last+1)
{ printf("error");
return NULL;
}
else
{ for(j=(*L).last; j>=i-1; j--)
(*L).data[j+1]=(*L).data[j];
(*L).data[i-1]=x;
(*L).last=(*L).last+1;
}
return(1);
}

int delete(L,i)
sequenlist *L;
int i;
{ int j;
if (i<1||i>(*L).last+1)
{printf ("

你这个是什么语言啊?我怎么好像看着有点像C,但C有
int delete(L,i)
sequenlist *L;
int i;
有这种格式吗?我帮你改了一下,自己对照着看看

注意:主要是你使用了指针所以无法控制程序
1.修改了指针;
2.请看注释
3.请用VC6.0编译,不要用tubor c2.0
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define maxsize 1024
typedef struct
{
datatype data[maxsize];
int last;
}sequenlist;

int insert(sequenlist &L,int x,int i)
{
int j;
if (L.last==maxsize-1)
{
printf("overflow");
return NULL;
}
else if (i<1||i>L.last+1)
{
printf("error");
return NULL;
}
else
{
for(j=L.last; j>=i-1; j--)
L.data[j+1]=L.data[j];
L.data[i-1]=x;
L.last=L.last+1;
}
return(1);
}

int mydelete(sequenlist &L,int i) //delete是关键字不能用,改成mydelete
{
int j;
if (i<1||i>L.last+1)
{
print