2018-03-17 线性表

线性表的定义

注:线性表是一个序列,是有顺序的,有先来后到。

数据结构包含逻辑结构,物理结构,以及简单操作。

而算法就是各种简单操作的一系列步骤,和基本的语句构成的集合。

线性表根据物理结构分为顺序表和链表,而这两种表结构的各个基本操作的复杂度不同。

基本操作包括:

使用一个线性表:初始化,置空,取长度,按位查找,按值查找

修改一个链表:删除,插入,修改

链表算法:排序

注意上面这些操作方法,输入量中包含这个(List,*)以及其他参量,是一种每个List都可以用的统一的方法。

顺序表

顺序表

在顺序表中三个属性:初始位置,存储长度maxsize,线性表的当前长度length 

顺序表可以简单的看成是数组,注意第i个元素在数组中下标为【i-1】

复杂度分析:

存储复杂度、访问复杂度:O(1)

插入复杂度、删除复杂度:O(n)

顺序表的特点

顺序表:适用于存储和访问

链式表 

链式表定义

链表分为单链表和双链表

单链表结构

单链表:只含有一个指针next,头指针指向头结点,头结点不是必须的,头指针是必须的,因为要找到第一个元素,为了保证各种插入,删除的一致性,在第一个元素前,需要添加一个头结点,头结点的数据域中一版不存放数据,或者可以存放链表长度。如不加特殊说明,链表都默认带头结点。链表中没有链表的长度这一项

注意:在学习链表的时候,不要有加减的想法,要根据指针来思考。

单链表的操作

查找操作查找是一步一步取指针,取指针的的次数由元素的位置控制,比如第3个元素,那么就取3次指针,则取到第三个元素的值。这里面有一个头结点的好处就出来了,虽然第三个元素是第四个节点,但是第三个节点的指针是指向第三个元素。 复杂度为O(n)

单链表的特点

插入操作与删除操作:复杂度为O(n)

图截:插入删除

顺序表和链表对比:顺序表每次插入或删除的复杂度都是O(n),而链表只有第一次为O(n),后续均为O(1),只需要定位一次。所以,链表适合频繁插入的操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://blog.csdn.net/oreo_go/article/details/52116214 ...
    YYT1992阅读 1,052评论 0 4
  • 大学的时候不好好学习,老师在讲台上讲课,自己在以为老师看不到的座位看小说,现在用到了老师讲的知识,只能自己看书查资...
    和珏猫阅读 1,488评论 1 3
  • 1.线性表的定义 线性表:零个或多个数据元素的有限序列序列:也就是说元素之间是有顺序的,若元素存在多个,则第一个元...
    e40c669177be阅读 2,124评论 6 15
  • 本文内容取自于小甲鱼的数据结构与算法。http://www.jianshu.com/p/230e6fde9c75 ...
    阿阿阿阿毛阅读 2,951评论 0 7
  • 我做了个艰难的决定。 吃饭的时候,我们一般默默地吃饭夹菜。两个人的厨艺都不好,我做的一般偏甜的,米亚喜欢咸和辣。但...
    红雪阅读 380评论 11 5