c++线性表的小程序 高手帮下忙谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:01:06
程序如下:
#include<iostream.h>
#include<stdlib.h>

#define list_init_size 100
#define list_increment 10
#define overflow -2
#define ok 1
#define error 0

struct sqlist
{
int *elem;
int length;
int listsize;
};

int initlist_sq(sqlist &l)
{
l.elem=(int*)malloc(list_init_size * sizeof(int));
if(!l.elem) exit(overflow);
l.length=0;
l.listsize =list_init_size;
return ok;
};

void main()
{
sqlist mylist;
int i;

initlist_sq(mylist);

for(i=1;i<10;i++)
mylist.elem [i]=i;
for(i=1;i<10;i++)
cout<<" "<<mylist.elem [i]<<endl;
cout<<" "<<mylist.length;

}
请问:#define overflow -2 这里的值为什么一定为-2
l.length=0;这里线性表的长度为0 为什么输出时还能是9个元素
另外告诉我下哪里构造出了一

上面的链接怀疑有病毒,大家别点。

#define overflow -2 个人感觉不是一定定义为-2,可能是约定俗成的为-2
l.length=0;在这里没有任何用处。
sqlist mylist是将mylist定义成sqlist类型
initlist_sq(mylist); 是将mylist初始化,分配了空间了;
for(i=1;i<10;i++)
mylist.elem [i]=i; 是对表中的元素进行赋值