线性表是具有相同特性的数据元素的一个有限序列。
一些对存储结构的操作(其实我理解为函数):
intilist 构造线性表
destroy 撤销线性表
clearlist 重置为空表
listempty 判断是否有元素,输出ture 和false
还有在对应位置插入,删除等操作。
操作定义实例:
void Destorylist(int L){
if(L.elem) delete L.elem; //如果L.elem存在,释放L.elem的存储空间。
}
以此类推使用return返回值以及其他的操作。
算法时间长度分析:
例如:
顺序表的查找算法分析:
我们要在长度为n的数列中,查找一个数据。计算其查找长度:
假设全部被查找: 1+2+3+...n的一个等差数列。
每个数据被查找的概率为1/n 两数相乘(n+1)/2位平均查找长度。
补充:
C语言的内存动态分配
使用<stdlib.h>数据库
sizeof(x) 计算x的长度
free(p) 释放指针p所指变量的空间
C++的动态存储分配:
new 类型名 int *p= new int; int *p= new int(10);
功能用于存放类型对象的内存空间
delete 指针p
功能:释放p所指的内存。p必须是new操作的返回值。
个人心得体会:
算法,学习之前觉得高深莫测,其实就是我们用代码解决问题的思路,并用科学系统的方法列出来,我们要根据实际的情况选择算法,每一种算法有自己空间和时间的消耗。