2019独角兽企业重金招聘Python工程师标准>>>
线性表:零个或多个数据元素的有限序列。
线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。
线性表用数学语言来定义:
若线性表记为(a1,a2,a3,...,a(i-1),ai,a(i+1),...,an),则表中a(i-1)领先于ai,ai领先于a(i+1),则称a(i-1)是ai的直接前驱元素,a(i+1)是ai的直接后继元素,。当i=1,2,3,...n-1时,ai有且只有一个直接后继元素,当i=2,3,4,...n时,ai有且只有一个前驱元素。
线性表的顺序存储结构,指的用一段地址连续的存储单元依次存储线性表的数据元素
线性表插入算法的思路:
1.如果插入位置不合理,抛出异常。
2.如果线性表长度大于等于数组长度,则抛出异常或动态增量数组。
3.从最一个后元素的开始向前遍历到第i个位置,分别将他们都向后移动一个位置。
4.将要插入的数据填入位置i处。
5.表长度加一。
线性表删除算法的思路:
1.如果删除位置不合理,抛出异常。
2.去出删除元素。
3.从删除元素位置开始遍历到最后一个元素位置,分别将它们都向前移动一个位置。
4.表长减一。
线性表顺序存储结构的优缺点:
- 优点:
- 1.无需为表示表中的元素之间的逻辑关系而增加额外的存储空间。
- 2.可以快速地存取表中的任意位置的元素。
- 缺点:
- 1.插入和删除需要移动大量的数据。
- 2.当线性表的长度变化较大时,难以确定存储空间的容量。
- 3.造成存储空间的“碎片”。
- 获得单链表第i个数据的算法思路:
- 1.声明一个节点p指向链表第一个节点,初始化j从1开始。
- 2.当j
- 3.入到链表结尾p为空,则说明第i个元素不存在。
- 4.否则查找成功,返回节点p的数据。