线性表

来源:互联网 发布:linux dump 内存 编辑:程序博客网 时间:2024/05/18 02:39

线性表的定义

  1. 线性表的特点是:表中每个元素最多只有一个直接前驱和一个直接后继。
  2. 线性表中每个元素在不同场合可以有不同含义,但同一个线性表中的元素类型要一致。
  3. 栈、队列为特殊的(运算受限的)线性表。

线性表的存储

  1. 可采用顺序存储方式和链表存储方式两种。
  2. 顺序存储是将线性表存入一个连续的空间,逻辑上相邻的元素在物理位置上也相邻。

顺序表

  1. 在顺序表中插入或删除一个元素时,在等概率情况下,需要移动表中约一半的元素(平均移动元素的次数为 n/2)。

链表

  1. 静态链表用数组来存储元素的值和地址,需要事先估计线性表元素的大小,不适用。
  2. 动态链表更能满足实际需求。

动态链表

  1. 在对单链表类进行定义时:
    class list{public:    list();  //初始化对应的构造函数    ~list(); //释放链表存储空间的析构函数
       }

单链表:每个结点中仅有一个指针。

单循环链表:将单链表的表尾结点中的后继指针改为指向表头结点。

          特点:可从任一元素结点出发搜索到其他各元素结点。

带尾指针的单循环链表:可以只带尾指针rear。

双(双向)链表:每个结点除了后继指针外,还增加了指向其前驱的指针。

   特点:能快速地求出任一链表结点的前驱和后继结点。

一种特殊的线性表:串

  1. 串的每个元素是一个字符,是由有限个字符组成的序列,记作S="a1a2a3...an"。
  2. 串可采用线性表的存储结构形式,即顺序串和链串。



原创粉丝点击