【软考学习】——线性表

来源:互联网 发布:药品条形码数据库 编辑:程序博客网 时间:2024/05/09 00:18

          在生活中可以看到很多的有关于线性的结构,比如列车等。从我们的生活经验结合学习的总结,可以了解线性的结构特点如下。
        在数据元素的非空有限集中:
        1、存在唯一的一个被称为“第一个”的数据元素。
        2、存在唯一的一个被称为“最后一个”的数据元素
        3、除第一个之外,集合中的每个数据元素均只有一个前驱。
        4、除最后一个之外,集合中的每个数据元素均只有一个后继。


 定义:


        线性表:简称表,是零个或多个元素的有穷序列,通常可以表示成(a1,a2。。。an)(n>=0)。线性表中的数据元素在不同的情况下可以有不同的具体含义,它可以是一个数,一个符号,也可是其他更复杂的信息。
        表的长度:表中所含元素的个数。
        空表:长度为零的表。
        表项:表中的元素ai

        位序:数据元素ai在线性表中的位置。


        线性表的特点:
        1、线性表中的数据元素是各种各样的,单同一线性表中的元素必定具有相同特性,即属于同一数据对象,比如数据元素都是整数。
        2、相邻数据元素之间存在序偶关系。

        3、相当灵活,长度可以增长或缩短,即可对线性表中的元素进行访问,还可以进行插入和删除等。


单链表


        一般附加一个头结点,其数据域不存储信息,指针域存储指向第一个结点的指针。在单链表的结构中,注意头指针,头结点等概念的不同含义。


为什么要加头结点:


  头结点是链表的开始结点之前的一个附加结点。
1、由于开始结点位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作就和在表的其他位置上的操作一致,无须进行特殊处理。
2、无论链表是否为空,其头指针是指向结点的非空指针(空表中头结点的指针域为空),因此空表和非空表的处理也就统一了

循环列表:

           最后一个结点的指针域的指针又回到第一个结点:



双向链表:


        可以在单链表的每一个结点里在增加一个指向期前驱和后继的指针域,这样链表中有两条不同方向链。有点:既可以找前驱,也可以找后继。




0 0
原创粉丝点击