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

《数据结构导论》——线性表、栈、队列、数组

2015-10-04 09:50 405 查看

    线性表

    定义:线性表(Linear List)是一种线性结构,它是由(n>=)个数据元素组成的有穷序列,其中,数据元素又称节点。

    存储结构:顺序存储、链式存储。

    时间复杂度:顺序表中的按位查找、求表长都是O(1),删除和插入操作是O(n)。

    链表中的删除、查找、插入等操作的时间复杂度都是O(n)(因为这些操作之前都需要对线性表进行定位操作)

   
导图分析

    


     线性表的顺序存储结构的特点

     顺序存储:预先分配空间大小,节点在内存中连续存储。

     链接存储:不用提前分配好空间,节点在内存中不一定连续。

     链式存储的分类:单链表,循环链表、双向循环链表。

     栈、队列

     栈和队列可以看做成是特殊的线性表。他们的特殊性表现在他们的基本运算时线性表运算的子集。

     栈和队列的实现都分为顺序的和链式的,站和队列的特点与性质有所不同,所以它们的用途也有所不同。

     导图分析

     


    队列的实现:顺序队列,它是由一维数组和队列的首尾指针组成的(循环队列)

                链队列,它是由带头结点的单链表组成的。

    队列的特点:先进先出的线性表。

    栈的实现:顺序栈,由一维数组与栈顶变量组成。

              链接栈,由带头结点的单链表组成。

    栈的特点:后进先出的线性表。

    应用

         栈适合于具有后进先出特性的问题,如实现程度递归,函数调用等。

         队列适合于具有先进先出特性问题,如操作系统中进程调度队列、打印队列等。

    数组

    数组采用顺序存储结构来存储数据元素,数组还可以看做线性表的推广。数组和线性表有很大的联系,线性表的顺序存储结构组成中都含有数组。

    


    数组按照维数来分类的话可以分为一维数组、二维数组、还有多维数组等。其中二维数组的存储方式又可以分为以行序列为主序,以列序为主序,在数据结构导论这本书中我们主要学习的是以二维数组为基础的矩阵,矩阵又分为对称矩阵、三角矩阵、系数矩阵等。

    小结

    从线性表到特殊的线性表——栈、队列,再到线性表的推广——数组,这都是数据的逻辑结构——线性结构的总结,后面我们还会学到图结构,树结构,集合等。其中书结构是比较重要的存储结构,敬请下回分解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息