企业网站建设价格,物流公司招聘信息,门户网站开发维护合同范本,海南新闻在线观看目录 线性表的基本操作#xff1a;线性表的在顺序存储上的实现 线性表的基本操作#xff1a;
一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可通过其基本操作来实现。线性表的主要操作如下 - InitList(L):初始化表。构造一个空的线性表- Length… 目录 线性表的基本操作线性表的在顺序存储上的实现 线性表的基本操作
一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可通过其基本操作来实现。线性表的主要操作如下 - InitList(L):初始化表。构造一个空的线性表- LengthL求表长 。 返回线性表L的长度即L中数据元素的个数- LocateElem(L,e)按值查找操作。在表L中查找具有给定关键字值e的元素- GetElemLi按位查找操作。操作表L中第i个位置的元素的值- ListInsertLie插入操作。在表中的第i个位置的元素的值- LIstDeleteLie删除操作。删除表L中第i个位置的元素并用e返回删除元素的值- PrintListL输出操作。按前后顺序输出线性表L的所有元素值- EmptyL判空操作。若L为空表则返回true负责返回false- DestroyListL销毁操作。销毁线性表并释放线性表L所占用的内存空间注意1基本操作的实现取决于采用哪种存储结构存储结构不同算法的实现也不同 2“” 表示c中的引用调用。若存入的变量是指针变量且在函数体内要对传入的指针进行改变则会用到指针变量的引用型。在c中采用指针的指针也可达到同样的效果
线性表的在顺序存储上的实现
线性表的顺序存储又称为顺序表。他是用一组地址连续的存储单元依次存储线性表中的数据元素从而使得逻辑上相邻的两个元素在物理元素上也相邻。第1个元素存储在线性表的起始位置第i个位置的存储位置后面紧接存储着的是i1个元素称 i 为元素的 αi 在线性表的位序。因此顺序表的特点是表中元素的逻辑结构与其物理结构 注意线性表中元素的位序是从1开始的而数组中元素的下标是从0开始的假定线性表的元素类型为ElemType则线性表的顺序存储类型描述为
#define MaxSize 50 // 定义线性表的最大长度
typedef struct {
ElemType data[MaxSize]; // 顺序表的元素
int length ; // 顺序表的当前长度
}SqList // 顺序表的类型定义
以为数组可以是静态分配的也可以是动态分配的。在静态分配时由于数组的大小和空间事先已经固定一旦空间占满在加入新的数据将会产生溢出进而导致程序崩溃
而在动态分配时存储数组的空间是在程序执行过程中通过动态存储分配语句分配的一旦数据空间占满就另外开辟一块更大的存储空间用以替换原来的存储空间从而达到扩充存储数组空间的目的而不需要为线性表一次性地划分所有空间
注意动态分配并不是链式存储它同样属于存储结构物理结构没有变化依然是随机存储方式只是分配的空间大小可以在运行时决定顺序表最主要的特点是随机访问即通过首地址和元素序号可在时间O1内找到指定的元素 顺序表的存储密度高每个节点值存储数据元素 顺序表逻辑上相邻的元素物理上也相邻所以插入个删除操作需要移动大量元素