线性表

作者: lichiii | 来源:发表于2018-08-07 22:19 被阅读0次

    1、定义

       《大话数据结构》里面对线程表的定义为:零个或多个数据元素的有限序列。

        用专业的数学语言可表述如下:若将线性表记为(a1,...,ai-1,ai,ai+1,...,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i=1,2,...,n-1时,ai有且仅有一个直接后继。当i=2,3,...,n时,ai有且仅有一个直接前驱。

    2、线性表的分类

        线性表按存储结构可分为:顺序存储结构和链式存储结构。

        线性表按表现形式可分为:单链表、双链表、循环链表。

        顺序存储结构一般用数组实现;链式存储结构一般用指针实现。还有一种特殊的线程表,用数组实现链式结构,叫做静态链表。

    3、线程表的常见操作

        1)创建空线性表;2)判断是否为空;3)清空;4)获取指定位置的元素;5)查找指定的元素;6)插入元素;7)删除元素;8)获取表的长度。

    4、特殊的线性表

        根据线性表的定义:栈、队列、字符串都可以看成是特殊的线程表。所以,栈、队列、字符串既可以用顺序存储结构实现,也可以用链式存储结构实现。

    4.1 两栈共享空间

        由于顺序存储结构扩展存储空间不方便。为了克服它的缺陷,对于两个同类型栈,会设计成两栈共享空间。如下图所示。(注:top1和top2分别为栈1和栈2的栈顶指针)

        栈空的条件:top1或top2等于-1

        栈满的条件:top1+1==top2

    4.2 循环队列

        对于队列,会设计成循环队列。如下图所示。(注:front指针指向队头元素,rear指针指向队尾元素的下一个位置)

        队列空的条件:front==rear

        队列满的条件:front == (rear+1) % QueueSize

    相关文章

      网友评论

          本文标题:线性表

          本文链接:https://www.haomeiwen.com/subject/ueqzvftx.html