- 线性表的类型定义
- 相同数据类型
- n个数据元素
- 有限序列
- L=(a1,……an)
- 除第一元素外,每个元素有且仅有一个直接前驱
- 直接后继同理
- 线性表的基础操作
- 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)内找到指定的元素)
- 存储密度高,每个节点只存储数据元素
- 插入和删除操作需移动大量元素
- 顺序表的实现
- 插入操作
-
bool ListInsert(SqList &L,int i,ElemType e){ if(i<1||i>L.length+1) return false; for(int j=L.length;j>=i;j--) L.data[j]=L.data[j-1]; L.data[i-1]=e; L.length++; return true; }
- 删除操作
-
bool ListDelete(SqList &L,int i,ElemType &e){ if(i<1||i>L.length) return false e=L.data[i-1]; for(int j=i;j<L.length;j++) L.data[j-1]=L.data[j]; L.length--; return true; }
- 按值查找操作
-
int LocateElem(SqList L,ElemType e){ int i; for(i=0;i<L.length;i++) if(L.data[i]==e) return i+1; return 0; }
-
按位查找操作
-
int GetElem(SqList L,int i){ if(i<1||i>L.length) return 0; return L.data[i-1]; }
顺序表知识点梳理
最新推荐文章于 2022-09-22 16:46:56 发布