课本上基本都是伪代码,涉及到程序语言的细节又不能真正运行,又具体又抽象。不管怎样,先把程序实际跑起来,等有了实际的体会后再抽象就好理解了。
上机实现代码:
先看使用:








































再来说明理论上为什么要这样定义,因为一个顺序线性表需要有这三个元素来定义。1:elembase:数组的起始地址,由此地址可找到整个线性表的内容。2:length:当前表中已经存的数据个数(注意和数组的下标区分开,相差1)。3:size:此线性表的容量大小,因为顺序表是一次分配一块连续内存(元素之间的先后顺序是内存地址的顺序,不象链式表是通过指针指向下一个元素地址),如果一次分配太大的一块内存可能就浪费,如果太小可能就不够用,所以就使用length和size两个属性来动态确定顺序表的大小(如果length==size了,重新分配一块更大的内存给这个顺序表)。












sqList->length=0;
sqList->size=LIST_INIT_SIZE;
}
}

/**/
/**/
/**/
/*
1:SqList *sqList 为什么传指针参数:因为需要修改形参的值(后面的display函数就没有传指针,因为display函数不改变顺序表的值)。
2:为什么要通过malloc动态分配内存:只有这样才能内存不够时另外分配一块合适的内存,
不像类似静态数组elemarr[100],如果容量不够没有办法,









需要动态创建的情形:
1.对象很大
2.对象需要在某个特定的时刻构造或析够
3.类只允许对象动态创建,比如VCL的大多数类
2.对象需要在某个特定的时刻构造或析够
3.类只允许对象动态创建,比如VCL的大多数类
http://zhidao.baidu.com/question/7759808.html?si=3
3:malloc函数: 返回值类型为 void *,调用格式为:malloc(size),size的类型为unsigned int 。
malloc函数用来分配size个字节的存储区,返回一个指向存储区首地址的基类型为void的地址,
若没有足够的内存单元供分配,函数返回空(NULL)。
通过调用malloc函数所分配的动态存储单元中没有确定的初值,这个存储单元也没有名字,只能靠指针来引用它。
因为malloc函数的返回的地址为void *,在调用函数时,必须使用强制类型转换将其转换为所需要的类型。

*/














































