数据结构之线性表

  • Post author:
  • Post category:其他



前言:





时间总是在不知不觉中过去,眼看就要出去找工作了;所以在这最后的一个多月打算把数据结构和算法学习一下,还有面试题也做一下。下面是我对数据结构中的线性表和链表写的一些笔记。







顺序表:





顺序表


在内存中的存储是非连续的,非顺序的。就和数组一样。



优点:查询速度快。



缺点:插入删除速度慢。



链表:链表是为了解决线性链表的插入删除速度慢而产生的。



优点:



插入删除速度



快。



缺点:



查询速度



慢。






链表又分为三种,分别是单向链表、双向链表和循环链表。











单向链表:



每个数据单元由两个部分组成。第一部分为地址信息,用于指向下一块数据单元;第二部分为数据。



单向链表中,数据在内存中可以是不连续的。因为每一块数据单元都保存了下一块数据单元的地址,可以通过这个地址跳转过去。内存分配更加灵活,插入和删除操作变得简单。因为,

插入一条新数据,只需要更改前一个数据单元的指向地址即可,然后再把所插入的数据指向下一个数据单元

即可。缺点:查询困难,需要从头开始查询。使用迭代器快速迭代。因为是非共享数据,

线程不安全

,当在迭代时,若发生了数据改变,快速迭代会迅速失败。















双向



链表:






在理解单向链表的基础上来了解双向链表其实很简单,只需要在单链表中添加一个前置元素指针即可。



循环




链表:







将单链表中的终端节点的指针由空指针改为指向头节点的指针,是整个链表成为一个环。


















版权声明:本文为qq_34489300原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。