题目描述
用静态分配方法来实现新建一个大小为10个元素的顺序表,声明一个顺序表L,初始化它
题目分析
1.用静态分配的方法新建顺序表,且大小为10
2.需要一个初始化顺序表的函数
3.主函数需要完成两个步骤,第一步是声明这个名为L的顺序表,第二步是使用初始化函数初始化它
参考答案
#include <stdio.h>
#define MaxSize 10
typedef struct{
int data[MaxSize];
int length;
}SqList;
void InitList(SqList& L){
for(int i = 0;i<MaxSize;i++)
L.data[i] = 0;
L.length = 0;
}
int main(){
SqList L;
InitList(L);
return 0;
}
小白集训
Sq是Sequential的缩写,表示顺序的意思,所以SqList指顺序表
Init表示初始化,所以InitList一般指初始化表的函数
静态分配的特点
- 随机访问,即在O(1)时间内找到第i个元素
- 实现代码:data[i-1];(静态分配、动态分配都一样)
- 存储密度高,每个节点只存储数据元素
- 扩展容量不方便(即便采用动态分配的方式实现,拓展长度的时间复杂度也比较高)
- 插入、删除操作不方便,需要移动大量元素