读书人

新手 关于顺序表

发布时间: 2013-03-12 11:19:35 作者: rapoo

新手求助 关于顺序表
我最近开始学习数据结构 尝试着自己编写了一下顺序表的初始化和插入的算法 但是无法编译通过 错误部分我也没法弄懂 希望大家帮我看看 谢谢了

#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define LIST_INIT_SIZE 100;
#define LISTINCREMENT 10;
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
SqList InitList()
{
SqList L;
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(L.elem==0)
exit(0);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return L;
}
void InserList(SqList *p,int i,int x)
{
SqList *newspace;
int j;
if(i<1||i>(p->length+1))
exit(0);
if(p->length==p->listsize)
newspace=(int *)realloc(p->elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int)));
if(newspace==0)
exit(0);
for(j=p->length;j>=i;j--)
p->elem[j]=p->elem[j-1];
p->elem[i-1]=x;
p->length++;
}
void main()
{
int i,j,n,m;
SqList L;
L=InitList();
printf("input the length\n");
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
printf("input number %d\n",n+1);
scanf("%d\n",&L.elem[i]);
}
scanf("%d\n%d\n",j,m);
InserList(&L,j,m);
}
数据结构 算法
[解决办法]

#include "stdio.h"
#include "stdlib.h"
#define LIST_INIT_SIZE 100 //去掉;
#define LISTINCREMENT 10 //去掉;
typedef struct
{
int *elem;
int length;
int listsize;
} SqList;

SqList InitList()
{
SqList L;
L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(L.elem==0)
exit(0);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return L;
}
void InserList(SqList *p,int i,int x)
{
int*newspace; //SqList *newspace;类型不匹配
int j;
if(i<1
[解决办法]
i>(p->length+1))
exit(0);
if(p->length==p->listsize)
newspace=(int *)realloc(p->elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int)); //()数量不匹配
if(newspace==0)
exit(0);
for(j=p->length;
j>=i;
j--)
p->elem[j]=p->elem[j-1];
p->elem[i-1]=x;
p->length++;
}
void main()
{
int i,j,n,m;
SqList L;
L=InitList();
printf("input the length\n");
scanf("%d\n",&n);
for(i=0; i<n; i++)
{
printf("input number %d\n",n+1);


scanf("%d\n",&L.elem[i]);
}
scanf("%d\n%d\n", &j, &m);/////scanf("%d\n%d\n",j,m);
InserList(&L,j,m);
}


[解决办法]
++,慢了一点。

引用:
C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include "stdio.h"#include "stdlib.h"#define LIST_INIT_SIZE 100 //去掉;#defi……

[解决办法]
把下面的代码直接COPY出来编译,我这边是OK的:

#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
SqList InitList()
{
SqList L;
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(L.elem==0)
exit(0);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return L;
}
void InserList(SqList *p,int i,int x)
{
SqList *newspace;
int j;
if(i<1
[解决办法]
i>(p->length+1))
exit(0);
if(p->length==p->listsize)
newspace=(SqList *)realloc(p->elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int));
if(newspace==0)
exit(0);
for(j=p->length;j>=i;j--)
p->elem[j]=p->elem[j-1];
p->elem[i-1]=x;
p->length++;
}
void main()
{
int i,j,n,m;
SqList L;
L=InitList();
printf("input the length\n");
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
printf("input number %d\n",n+1);
scanf("%d\n",&L.elem[i]);
}
scanf("%d\n%d\n",&j,&m);
InserList(&L,j,m);
}


引用:
引用:++,慢了一点。

引用:C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include "stdio.h"#includ……

[解决办法]
引用:
引用:++,慢了一点。

引用:C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include "stdio.h"#includ……

估计你考错了。
宏相当于替换,有;的话;也会被替换进代码里。
------解决方案--------------------


注意基本功。

读书人网 >C++

热点推荐