美文网首页
数据结构与算法线性表

数据结构与算法线性表

作者: 傻疯子 | 来源:发表于2022-02-19 23:55 被阅读0次

1.线性表的定义
线性表是具有相同数据类型的n个数据元素的有限序列,其中n位表长,当n=0时线性表是一个空表

线性表的特点:
表中元素的个数有限;表中元素具有逻辑上的顺序性,表中元素有其先后次序;表中元素都是数据元素,每个元素都是单个元素;每个元素占有相同大小的存储空间

线性表时一种逻辑结构,表示元素之间一对一的相邻关系,顺序表和链路表时存储结构

2.顺序表的定义
线性表的顺序存储又称顺序表
用一组地址连续的存储单元依次存储线性表中的数据元素

一维数组空间分配
静态分配:数组的大小和时间已经固定,一旦空间占满,再加入新的数据就会产生溢出,程序就会奔溃
动态分配:存储数组的空间是在程序执行过程中通过动态存储分配语句配的
一旦数据空间占满,就另外开辟一块更大的存储空间,用以替换原来的存储空间

注意:动态分配仍然是顺序存储结构,物理结构没有变化,依然是随机存取方式只是分配的空间大小可以再运行时决定

特点:随机访问,即通过首地址和元素序号可再时间O(1)内找到指定的元素;存储密度高,每个结点只存取数据元素;逻辑上相邻的元素物理上也相邻,当执行插入和删除操作时,需要移动大量元素

3.单链表
线性表的链式存储又称单链表,它是通过一组人意的存储单元来存储线性表中的数据元素
对每个链表节点,除存放元素自身的信息外,还需要存放一个指向其后继的指针

4.双链表
双链表结点中有两个指针prior和next,分别指向前驱结点和后继结点

5.循环单链表
循环单链表和单链表的区别在于,表中最后一个结点的指针不是NULL,而改为指向头节点,形成了一个环

6.循环双链表
在循环双链表中,头节点的prior指针还要指向表尾节点

7.静态链表
静态链表借助数组来描述线性表的链式存储结构,静态链表也要预先分配一块连续的内存空间
结点也有数据域data和指针域next,这里的指针是结点的相对地址(数组下标),又称游标

相关文章

网友评论

      本文标题:数据结构与算法线性表

      本文链接:https://www.haomeiwen.com/subject/curmlrtx.html