1.顺序表的初始化中函数的应用:
L.elem=new ElemType[MAIXSIZE];//为顺序表分配一个大小为MAIXSIZE的数组空间。
运用了C++中的new函数进行动态地址分配。
一般分配模式为:未知量=new 类型名 (列表初值)//列表初值可无。
例:int*p= new int;或int *p=new int (10);
每个new 都要对应一个delete,来释放分配的内存;
L.elem=(int *)malloc(number *size of[MAIXSIZE]) ;//为顺序表分配一个大小为MAIXSIZE的数组空间。
运用了C中的malloc 函数进行动态地址分配。
一般分配模式为:未知量=(类型名)malloc (number*size of(类型));
每一个malloc都要定义一个free 来释放空间。
2.取值
基本语句:e=L.elem[i-1];
时间复杂度为O(1);
3.查找
基本语句:
for(i=0;i<L.length;i++)
if(L.elem[i]==e)return i+1;
ASL=,省略n的系数1/2,后得平均时间复杂度为O(n);
4.插入
基本语句:
for ( j=L.length -1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
共有(n+1)个位置可以插入,概率为,则期望值为,结果为n/2。n的系数为1/2,省略系数则时间按复杂度为O(n);
5.删除
基本语句:
for(j=1;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j];
假设删除第i个元素,则移动n-i个元素。期望为:,共有n个元素,概率为1/n,结果为n-1/2,取数量级为时间复杂度O(n)。