数据结构之线性表
线性表
-
定义:线性表是由n个数据元素组成的有限序列,每一个数据元素有且只有一个直接前驱和一个直接后继(第一个元素只有直接后继,最后一个元素只有直接前驱)
-
线性表的存储结构:分为顺序存储与非顺序存储
-
顺序存储结构通常采用数组实现
-
优点:易存取数据元素
-
缺点:插入或删除元素比较繁琐
-
-
插入:在插入元素时,需要将待插入位置及之后的元素整体后移(从后面开始依次进行),再将待插入元素插入到相应位置,顺序表长度加一
![image]()
-
删除:将待删除元素之后的元素依次前移覆盖掉前面的元素,顺序表长度减一
![image]()
-
非顺序存储结构通常采用链表实现
- 优点:易插入或删除元素
- 缺点:查找时需要遍历整个链表
-
插入:
- 头插法: 借用head节点来进行插入,首先将待插入节点的next指向head.next后,将haed.next指向待插入节点
![image]()
- 尾插法:借用rear节点进行插入(rear节点始终指向链表的最后一个元素)。将rear.next指向待插入节点后将rear节点重新指向插入的节点
![image]()
-
删除: 利用两个额外的节点(节点front,节点behind),刚开始时节点front指向head节点,behind.next节点指向front节点,利用循环查找使得front节点指向待删除节点,这时可用behind.next = front.next删除指定节点
![image]()
-





浙公网安备 33010602011771号