您的位置:首页 > 理论基础 > 数据结构算法

数据结构之线性表

2017-06-13 09:03 169 查看

前言:

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

顺序表:

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

优点:查询速度快。

缺点:插入删除速度慢。

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

优点:插入删除速度快。

缺点:查询速度慢。

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

单向链表:

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

单向链表中,数据在内存中可以是不连续的。因为每一块数据单元都保存了下一块数据单元的地址,可以通过这个地址跳转过去。内存分配更加灵活,插入和删除操作变得简单。因为,插入一条新数据,只需要更改前一个数据单元的指向地址即可,然后再把所插入的数据指向下一个数据单元即可。缺点:查询困难,需要从头开始查询。使用迭代器快速迭代。因为是非共享数据,线程不安全,当在迭代时,若发生了数据改变,快速迭代会迅速失败。





双向链表:
在理解单向链表的基础上来了解双向链表其实很简单,只需要在单链表中添加一个前置元素指针即可。
  循环链表:
将单链表中的终端节点的指针由空指针改为指向头节点的指针,是整个链表成为一个环。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构与算法