前言:
时间总是在不知不觉中过去,眼看就要出去找工作了;所以在这最后的一个多月打算把数据结构和算法学习一下,还有面试题也做一下。下面是我对数据结构中的线性表和链表写的一些笔记。
顺序表:
顺序表
在内存中的存储是非连续的,非顺序的。就和数组一样。
优点:查询速度快。
缺点:插入删除速度慢。
链表:链表是为了解决线性链表的插入删除速度慢而产生的。
优点:
插入删除速度
快。
缺点:
查询速度
慢。
链表又分为三种,分别是单向链表、双向链表和循环链表。
单向链表:
每个数据单元由两个部分组成。第一部分为地址信息,用于指向下一块数据单元;第二部分为数据。
单向链表中,数据在内存中可以是不连续的。因为每一块数据单元都保存了下一块数据单元的地址,可以通过这个地址跳转过去。内存分配更加灵活,插入和删除操作变得简单。因为,
插入一条新数据,只需要更改前一个数据单元的指向地址即可,然后再把所插入的数据指向下一个数据单元
即可。缺点:查询困难,需要从头开始查询。使用迭代器快速迭代。因为是非共享数据,
线程不安全
,当在迭代时,若发生了数据改变,快速迭代会迅速失败。
双向
链表:
在理解单向链表的基础上来了解双向链表其实很简单,只需要在单链表中添加一个前置元素指针即可。
循环
链表:
将单链表中的终端节点的指针由空指针改为指向头节点的指针,是整个链表成为一个环。
版权声明:本文为qq_34489300原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。