赞
踩
在计算机内,线性表分为顺序存储结构和链式存储结构
顺序存储定义
把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。
逻辑上相邻的元素,在物理位置上也相邻。
顺序存储结构
例如:线性表(1,2,3,4,5)的存储结构:
顺序表中元素存储位置的计算
知道某个元素在什么位置,以及元素的数据类型,那么下一个元素在什么位置就很容易算出来了。
线性表的特点
如何让线性表可长可短?
线性表的类型定义模板
#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量
typedef struct
{
int ElemType elem[LIST_INIT_SIZE];
int length;//当前长度,存储线性表中元素的个数
}SqList;
多项式的顺序存储结构类型定义
#define MAXSIZE 100 //多项式可能达到的最大长度
typedef struct //多项式非0项的定义
{
float p;//存储非0项的多项式的系数
int e;//存储非0项的多项式的指数
}polynomial;
typedef struct
{
Polynomial* elem ;//存储空间的首元素地址
int length;//多项是中当前项的个数
}SqList;//多项式的顺序存储结构类型为SqList
图书表的顺序存储结构类型定义
#define MAXSIZE 100 //图书表可能达到的最大长度
typedef struct //图书信息定义
{
char no[20] ;//图书ISBN
char name[50];//图书名
float price ;//图书价格
}BOOK;
typedef struct
{
BOOK* elem ;//存储空间的首元素地址
int length;//图书表中当前图书的个数
}SqList;//图书表的顺序存储结构类型为SqList
typedef struct
{
ElemType* elem ;
int length;
}SqList;//定义的顺序表类型为SqList
int main()
{
SqList L= {0};//定义并初始化一个SqList类型的的顺序表L。
}
对顺序表 L 内的成员进行引用及操作【自定义数据类型】,说白了就是对结构体的操作。
线性表初始化
销毁线性表L
清空线性表L
求线性表L的长度
判断线性表L是否为空
顺序表的取值
顺序查找法
在线性表 L 中查找与指定值 e 形同的数据元素的位置。
从表的一端开始,逐个进行记录的关键字和给定值的比较。找到,返回该元素的位置序号,未找到,返回0。
for循环实现顺序查找:
算法分析
平均查找长度 ASL(Average Search Length)
假设要查找前7个元素的数,则用前7个位置数相加再除掉比较的元素个数。
在线性表 L 中第 i 个位置插入新元素 e。
线性表的插入操作是指在表的第 i 个位置插入一个新的数据元素 e ,使长度为 n 的线性表变成长度为 n + 1的线性表。
现有一个长度为6个元素的顺序表。
插入算法演示
算法思想
算法描述
算法分析
算法时间主要耗费在移动元素的操作上
删除算法演示
算法步骤
算法描述
算法分析
算法时间主要耗费在移动元素的操作上。
顺序表特点
顺序表的算法分析
顺序表优缺点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。