数据结构和算法(4)线性表

1、线性表:由零个或多个数据元素组成的有限序列,零个元素是空表
2、线性表的关键:是一个序列、元素之间有先来后到、若元素存在多个,则第一个元素无前驱、最后一个元素无后继,其他元素有且只有一个前驱和后继、线性表强调是有限的
3、抽象数据类型的标准格式
在这里插入图片描述
4、线性表Operation:LnitList(*L)、ListEmpty(L)、ClearList(L)、GetElem(L,ie)、LocateElem(L,e)、ListInsert(*L,i,e)、ListDelete(*L,i,&e)、ListLength(L)

5、线性表的顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素

6、线性表顺序存储结构的优缺点
优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间、可以快速地存取表中任意位置的元素
缺点:插入和删除操作需要移动大量元素、当线性表长度变化较大时,难以确定存储空间的容量、容易造成存储空间的碎片

7、线性表的链式存储结构的特点:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置

8、存储数据元素的域称为数据域,存储后继位置的域称为指针域;指针域中存储的信息称为指针或者链,这两部分信息组成数据元素称为存储印象,称为结点

9、头指针与头结点的异同
头指针:头指针是指向链表第一个结点的指针,若链表有头节点,则是指向头节点的指针、头指针具有标识的作用,常用头指针冠以链表的名字、无论链表是否为空,头指针均不为空、头指针是链表的必要元素
在这里插入图片描述
头指针必须有、头结点不一定要有

10、单链表图例
在这里插入图片描述
a1是第一个结点
空间表图例
在这里插入图片描述

11、单链表的读取算法思路
(1)声明一个结点p指向链表第一个结点,初始化j从1开始
(2)当j>i时,就遍历链表,让p的指针向后移动,不断指向下一结点,j+1
(3)若到链表末尾p为空,则说明第i个元素不存在;
(4)否则查找成功,返回结点p的数据

12、单链表的插入是否可以交换顺序
在这里插入图片描述
不可交换

13、单链表第i个数据插入结点的算法思路
在这里插入图片描述
14、单链表第i个数据删除结点的算法思路
在这里插入图片描述
15、单链表整表创建得算法思路
在这里插入图片描述
16、头插法建立单链表
就是把新加进的元素放在表头后的第一个位置
在这里插入图片描述
17、尾插法建立单链表
把新节点插到最后

18、单链表整表删除的算法思路
声明结点p和q;
将第一个结点赋值给p,下一结点赋值给p
循环执行释放p和将q赋值给p的操作
19、单链表结构与顺序存储结构优缺点
从存储分配方式、时间性能、空间性能三方面来做对比
存储分配方式
在这里插入图片描述
时间性能
在这里插入图片描述
空间性能
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章