软考(软件设计世)知识点汇总(二)——数据结构基础之线性表

一、线性表:

**1.定义:**线性表是N个元素的有限序列,通常记为(a1,a2,a3,a4……an);
2.特点:(1)存在唯一的表头和表位;(2)除表头外,表中的每一个元素均只有唯一的直接前驱。(3)除表尾外,表中的每一个元素,只有唯一的直接后继。
3.存储结构:
(1)顺序结构:用一组地址连续的存储单元一次存储线性表中的数据元素,从而使得逻辑关系相邻的元素在物理位上也相邻。
优点:可以随机存取表中的元素;缺点:插入和删除要移动大量元素。
(2)链式结构:用节点来存取数据元素,结点的空间可以是连续的,也可以是不连续的,因此存储数据元素的同时必须存储元素之间的逻辑关系。
优点:插入和删除方便;缺点:增加存储空间开销,不能随机访问。
几种链表结构:(1)双向链表(2)循环链表 (3)静态链表
4.线性表的插入和删除运算:
(1)基于顺序存储结构的运算:插入后,需要挪用其它元素。
(2)基于链式存储结构的元素:是指是相关的指针的修改。

二、栈:

栈是通过一端来实现数据结构存储和检索的一种线性表。
栈的修改是按先进后出的。
栈的顺序结构是指用以租地址连续的存储单元一次存储自栈顶到栈底的数据元素,同时设置针top指示栈顶元素的位置。
链表作为存储结构的栈称为链栈:栈中元素的插入和删除,仅在栈顶一端经行,因此不必设置头结点,链表的头指针是栈顶定指针。

三、队列:

队列是一种先进先出(FIFO)的线性表,它只允许在表的一端插入元素,而在表的另一端删除元素。允许插入元素的一端称为队尾,允许删除元素的一端称为队头。
队列的存储结构:
(1)顺序结构:利用一组地址连续的存储单元存放队列中元素。由于队列中元素的插入和删除限定在队列的两端进行,因此设置队头指针和队尾指针,分别指示当前队首元素和队尾元素。
(2)链表结构:为了便于操作,给链队列添加一个头结点,并令头指针向头结点。
队列为空的判定条件:头指针和尾指针的值相同,且均指向头结点。

四、串

由字符构成的有限序列,是取值范围受限的线性表。
一般记为:S=“a1a2a3…an”;其中S是串名,a1a2a3…an是串值。
空串:长度为0的串.。如:“”;
空字符串:有一个或多个空格组成的串。列如:" ";
子串:由串中任意长度的连续字符构成的序列,含有子串的串称为主串。列:主串。”abcdcc“;子串:”cd“;
串相等:两个串长度相等且对应位置上的字符也相同。
串比较:两个串比较大小时以字符的ascii码值作为依据。
串的存储结构:
(1)串的顺序存储:用一组地址连续的存储单元来存储串列的字符串。
(2)串的链式存储:当用链表存储串的字符时,每个结点中可以存储一个字符,也可以存储多个字符。要考虑存储密度的问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章