顺序表实现
顺序表属于线性表
线性表的核心功能一般有:
InitList(&L) :
Length(L) :
LocateElem(L,e):
GetElem(L,i):
ListInsert(&L,i,e):
ListDelete(&L,i,&e):
PrintList(L):
Empty(L):
DestroyList(&L):
知识点
顺序表
物理结构:顺序存储
特点:
随机访问,可以在O(1)时间内找到第i个元素
存储密度高,每个节点只存数据元素
拓展容量不方便(即便是采用动态分配的方式,拓展长度的时间复杂度也比较高)
插入、删除操作不方便,需要移动大量元素。
代码实现
代码如下:
#include <iostream>
using namespace std;
//静态分配
#define MaxSize 50
typedef struct{
int data[MaxSize];
int length;
}SSqlist;
//初始化一个顺序表,主要是给他赋初值,防止内存中有遗留脏数据。
void SInitList(SSqlist &L){
for(int i=0;i<MaxSize;i++){
L.data[i]=0;
}
L.length=0;
}
//往第i个位置插入数据e,也就是说要把第i位后面的元素向后移
bool SListInsert(SSqlist &L,int i,int e){
// 要考虑好健壮性
if(i<1||i>