云南大学--软件学院---数据结构复习提纲1-6

  • 格式:doc
  • 大小:359.00 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构复习提纲

第一章:

1.数据结构的逻辑结构:集合结构、线性结构、树形结构、图状结构

2.数据结构的物理(存储)结构:顺序结构、链式结构

3.抽象数据类型的两个重要特性:数据抽象、数据封装

4.算法的五个重要特性:有穷性、确定性、可行性、输入、输出

5.算法设计原则:正确的、可读性、健壮性、高效率与低存储量

第二章

1.线性表存储结构的公式:

Loc(a i+1)=Loc(a i )+L

Loc(a i )=Loc(a 1)+(i-1)*L

2.线性表的顺序存储结构“在表中任何位置(1≦i ≦n+1)上插入结点”算法时间复杂度: O(n)

3.线性表的顺序存储结构“在表中任何位置(1≦i ≦n)上删除结点”算法时间复杂度: O(n)

4.域的定义:举例

data :数据域,用来存放结点的值。

next :指针域(亦称链域),用来存放结点的直接后继的地址。

5.线性表的链式表示和实现(建表):

头插法:该方法从一个空表开始,重复读入数据,生成新结点,将读入数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。、 尾插法:该方法是将新结点插入到当前链表的表尾上,为此必须增加一个尾指针r ,使其始终指向当前链表的尾结点。

6.线性表的链式表示和实现(查找):

按序号查找:在链表中,当知道被查找结点的序号pos 时,只能从链表的头指针出发,顺链域next 个结点往下搜索,直到搜索到第i 个结点为止。因此,链表不是随机存取结构。

按值查找:按值查找是在链表中,查找是否有结点值等于给定值key 的结点,若有的话,则返回首次找到的其值为key 的结点的存储位置;否则返回NULL 。查找过程从开始结点出发,顺着链表逐个将结点的值和给定值key 作比较。

7.线性表的链式表示和实现(插入和删除运算的实现代码略)

8.涉及遍历操作时,其终止条件:非循环链表判断p 或p —>next 是否为空

9.循环链表:涉及遍历操作时,其终止条件:

判断它们是否等于某一指定指针,如头指针等。

data next

10.双向链表结构的对称性可用下式描述:

p->prior->next = p = p->next->prior

11.双向链表的前插操作、删除操作步骤算法(略)

第三章:

1. 栈:限定仅只能在表尾端进行插入和删除的线性表。

栈顶:表尾端被称之为栈顶。

栈底:和表尾相对应的另一端,称之为栈底。

特点:后进先出(LIFO)。

2.顺序栈的表示和实现

栈满时的处理方法:

1、提示出错,返回操作系统。

2、分配更大的空间。

链式栈的表示和实现:

算法实现,自己看(略)

3. 队列:在表的一端进行插入,而在另一端进行删除的线性表。

队尾:进行插入的一端。

队首:进行删除的一端。

特点:先进先出(FIFO)。

4.顺序表示的队列(循环队列):

队空标志: front == rear

队满标志: rear>=MAXQSIZE

(假溢出)

第四章:

1. 串类型的定义

串的定义:串(String)是零个或多个字符组成的有限序列。

串的长度:串中所包含的字符个数称为该串的长度。

串的长度:串中所包含的字符个数称为该串的长度。

空格串:将仅由一个或多个空格组成的串称为空格串(Blank String)。注意:空串

和空格串的不同,例如“ ”和“”分别表示长度为1的空格串和长度为0的空串。

子串与主串:串中任意个连续字符组成的子序列称为该串的子串,包含子串的串

相应地称为主串。

相等:当且仅当两个串的长度相等,并且每个对应位置的字符都相等时,称两个

串相等。

串常量和串变量:串常量和整常数、实常数一样,在程序中只能被引用但不能改

变其值,即只能读不能写。串变量的值在程序中可以改变,即可以读也可以写。

2. 求串长(length):int strlen(char *s);

串复制(copy):char *strcpy(char *to,char *from);

串复制(copy):char strcat(char *to,char *from);

串比较(compare):int strcmp(char *s1,char *s2);

字符定位(index):char strchr(char *s,char c);

3. 串的块链存储表示

Index( )函数:求子串(模式)在主串的位置。

第五章:

1.数组是n(n>1)个相同类型数据元素构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。

2.多维数组是一维数组的推广。

3.两种顺序存储方式:

行优先顺序——将数组元素按行排列,第i+1个行向量紧接在第i 个行向量后面。 在PASCAL 、C 语言中,数组就是按行优先顺序存储的。

列优先顺序——将数组元素按列向量排列,第j+1个列向量紧接在第j 个列向量之 后。在FORTRAN 语言中,数组就是按列优先顺序存储的。

4.

5.三角矩阵 a 00 a 01 … a 0 n-1 a 00 c … c

c a 11 … a 1 n-1 a 10 a 11 … c

………………...….. ……………................

c c … a n-1 n-1 a n-1 0 a n-1 1 … a n-1 n-1

6.对角矩阵

k=2+3*(i-1)+j-i+1=2*i+j

7.稀疏矩阵

8.矩阵转置算法(略)

9.矩阵的压缩存储 d i m i LOC d i m i m m m i m m m i LOC i i i LOC n n j n j k k j n n n n n n *)()0,,0,0( *)( )0,,0,0(),,,(111143232121+⎪⎪⎭⎫ ⎝⎛*+=+*++****+****+

=∑∏-=+=-ΛΛΛΛΛΛΛ⎪⎪⎩⎪⎪⎨⎧>+*≤-++-*=j i n n j i i j i n i k 当当,2)1(,2)12(⎪⎪⎩⎪⎪⎨⎧>+*≤++*=j i n n j i j i i k 当当,2)1(,2)1(i (行)j (列)v (值)