第二章之线性表、栈、队列和线性表

线性表的存储结构(主要有两种):

1、定长的顺序存储结构,也称顺序表或向量型的一维数组结构。数据结点之间的逻辑关系是通过数据结点的存储位置来反映的。

2、边长的线性结构存储结构、大多实现为链接式存储结构。数据结点之间的逻辑关系是以指针来表示的。

两者的比较

1、顺序表的主要优点体现在没有使用指针,节省存储空间,而且线性表元素的读访问非常简洁便利。、

2、链表的主要优点则体现在无需事先确定线性表的长度,可以根据需要动态申请,且允许线性表的长度有很大变化,能够适应在线性表中经常插入、删除内部元素的情况。

栈:栈是一种限制访问端口的线性表,常被称为后进先出表(LIFO表)。其元素的插入和删除都只在表的一段进行,该端也称为栈的“栈顶”,另一端叫做“栈底”。

栈得到特点是每次取出(并被删除)的元素总是刚进栈的、最后压如的元素,而最先压如的元素则是被放在栈的底部,要到最后才能取出。

队列:队列也是一种特殊的、限制访问端口的线性表,常被称为先进先出表(FIFO表)。其元素的删除只限于在表的一端进行,该端称为队列的“头而元素的插入则被限制于另一端,“此端叫做队列的“尾”

  队列的特点是新来的成员总是加入到队的末尾,而每次取出的元素总是来自队列的前端,即先来先服务,在队列里最老的成员先出去。

限制存取点的表

1、双端队列:限制插入和删除在线性表的两端进行

2、超队列、一种删除受限的双端队列,删除只允许在一端进行,而插入可在两端进行

字符串:由零个或多个字符顺序排序组成的有限序列。它是一种特殊的线性表,其特殊性主要体现在组成表的每个元素均为一个字符,以及与此相应的一些特殊操作。

字符串的模式匹配:KMP算法

猜你喜欢

转载自www.cnblogs.com/0405mxh/p/10134695.html