南邮数据结构1-11章重点

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

数据结构

第一章

1. 4种基本的逻辑结构:(注意特征,考选择填空题)P2

2. 两种基本的存储结构:顺序存储结构和链接存储结构

3. 时间复杂度:程序运行从开始到结束所需要的时间

4. 算法的空间复杂度:是程序运行从开始到结束所需的存储量。

5. 渐进时间复杂度:使用大O记号表示的算法的时间复杂度

O(1)

6 . 最好、最坏和平均情况时间复杂度P13

相关习题:P14 1-18题

第二章

1 一维数组:设给长度为n的一维数组a所分配的存储块的起始地址是Loc(a[0]),若已知a 的每个元素占k个存储单元,则下标为i的数组元素a[i]的存放地址Loc(a[i])是

Loc(a[i])= Loc(a[0])+i*k 0≤i<n

2 二维数组:行优先顺序的地址计算:

若已知每个数组元素占k个存储单元,第一个数组元素a[0][0]的存储地址是loc(a[0][0]),则数组元素a[i][j]的存储地址loc(a[i][j])为

loc(a[i][j])=loc(a[0][0])+(i*n+j)*k (0 i

列优先顺序存储:

loc(a[i][j])=loc(a[0][0])+(j*m+i)*k (0 i

3 单链表的插入与删除(指针的修改)P27

A. 将q 插入P 之后: q->link=p->link ,

p->link=q

B. 删除p : q->link=p->link ,

free(p)

4 循环链表

单循环链表是将单链表尾结点的指针域置为第一个结点的地址,而不再是NULL ,这样从表中任一结点出发,均可访问到表中所有结点。q->link=first

第三章

1 堆栈:先进后出,允许插入和删除元素的一端称为栈顶,另一端称为栈底。

2 队列:先进先出,队尾是允许插入元素的一端,队头是允许删除元素的另一端。

相关习题

P55 习题3-1、习题3-14

第四章

1顺序表的插入: 长度为n ,则在位置i (i=0,…, n )处插入一个元素要移动 n-i 个元素。

平均情况下,在表中插入元素需要移动元素的个数为 渐近时间复杂度:O(n)

2 顺序表的删除:长度为n ,删除位置i 处的元素需要移动n -i -1个元素(0≤i <n )。

01()1

2n

i i n E n i n ==-=

+∑

平均情况下,在顺序表中删除一个元素需要移动元素的个数为

渐进时间复杂度均为O(n)。

3 程序填空题

P60 程序4-1 P63 程序4-3 P64 程序4-4

4 三元组按行顺序存储 P74 (能够写出行、列三元组表)

注:采用二分搜索法查找一个元素的时间复杂度为O (lbn ) 采用顺序查找算法的平均时间复杂度为O(n)

5 快速转置算法

A 。Num[i]存放矩阵M 第i 列的非零元素的个数

B 。k[i]用下列递推公式计算 k[0]=0

k[i]=k[i-1]+num[i-1] (1≤i ≤n)

对上图(a )计算得到如下num 和k 的值如下:

相关练习:P87 4-13 P87 4-14

∑∑-==-=-=--=10121

)(1)1(1n i n

i D n i n n

i n n A

第六章

1 树的基本概念

2 二叉树的基本形态

例题

对于三个结点A,B 和C,可分别组成多少不同的无序树、有序树和二叉树?

答:(1)无序树:9 棵(2)有序树:12 棵(3)二叉树:30 棵

3 二叉树的性质(熟记)

性质1 二叉树的第i(i 1)层上至多有2i-1 个结点。

性质2 高度为h的二叉树上至多有2h–1个结点。

性质3 包含n个元素的二叉树的高度至少为log2(n+1)。

性质4 任意一棵二叉树中,若叶结点的个数为n0,度为2的结点的个数为n2,则有n0=n2+1。性质5 具有n个结点的完全二叉树的高度为log2(n+1)。

定义1 高度为h的二叉树恰好有2h–1个结点时称为满二叉树。

定义2 一棵二叉树中,只有最下面两层结点的度可以小于2,并且最下一层的叶结点集中在靠左的若干位置上。这样的二叉树称为完全二叉树。

4 二叉树的遍历P112 图6-12

先序:根左右

中序:左根右

后序:左右根

二叉树遍历算法基本操作是访问结点,不论按何种次序遍历,对含有n个结点的二叉树,其时间复杂度均为O(n)。

5 编程题

求二叉树的高度P118 程序6-8

6 森林与二叉树的转化

树(Tree)转换为二叉树(BTree)算法

树可以唯一地表示成一棵二叉树:

⑴将树中的兄弟用线连接;

⑵对各结点,保留最左孩子的连线,去掉其余孩子的连线;

⑶调整为习惯的二叉树形(水平右斜,垂直左斜)。

例图如下

森林(Forest)转换成二叉树(BTree)

可以将任何森林唯一地表示成一棵二叉树。

方法如下:

(1)若F为空,则B为空二叉树

(2)若F非空,则B的根是F中第一棵子树T1的根R1,B的左子树是R1的子树森林(T11,T12,…,T1m),B的右子树是森林(T2,…,Tn)所对应的二叉树.

最后所形成的二叉树就是森林所对应的二叉树。

例图如下

相关文档
最新文档