成人函授教育Word文件下载.docx
- 文档编号:19271841
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:71
- 大小:73.69KB
成人函授教育Word文件下载.docx
《成人函授教育Word文件下载.docx》由会员分享,可在线阅读,更多相关《成人函授教育Word文件下载.docx(71页珍藏版)》请在冰豆网上搜索。
本科。
二、自学进度表
自学进度要求
面授
时数
备注
周次
日期
预习重点
自学各章节内容
自学
1
线性表
栈和队列
第一章绪论
第二章线性表
第三章栈和队列
7
作业
2.2、2.3、3.1、3.2
2
串
数组和广义表
第四章串
第五章数组和广义表
4
4.4
3
树和二叉树
第六章树和二叉树
6.9、6.11
图
第七章图7.1-7.4
7.1、7.3
5
查找
第七章图7.5-7.6
第八章查找8.1-8.2
7.6、
8.2、8.4
6
第八章查找8.3-8.4
8.5、8.11
内部排序
第九章内部排序
9.1、9.2
8
外部排序
第十章外部排序
9.7、9.18
10.5
三、主要章节指导及说明
第一章数据结构基本概念及简单的算法分析
1、教学内容:
什么是数据结构;
抽象数据类型及面向对象概念:
数据类型;
数据抽象与抽象数据类型;
面向过程的概念;
用于描述数据结构的语言;
数据结构的抽象层次;
算法定义;
性能分析与度量:
算法的性能标准;
空间复杂度度量;
时间复杂度度量;
2、教学要求:
了解:
什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与物理结构、逻辑结构与物理结构间的关系;
了解:
什么是数据类型、抽象数据类型、数据抽象和信息隐蔽原则。
算法的定义、算法的特性、算法的时间代价、算法的空间代价
掌握:
用C语言描述算法的方法;
3、习题与解答:
(1)、什么是数据结构?
有关数据结构的讨论涉及哪三个方面?
【解答】
数据结构是指数据以及相互之间的关系。
记为:
数据结构={D,R}。
其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:
1数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构;
②数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;
3施加于该数据结构上的操作。
(2)、什么是算法?
算法的5个特性是什么?
试根据这些特性解释算法与程序的区别。
通常,定义算法为“为解决某一特定任务而规定的一个指令序列。
”一个算法应当具有以下特性:
①有输入。
一个算法必须有0个或多个输入。
它们是算法开始运算前给予算法的量。
这些输入取自于特定的对象的集合。
它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
②有输出。
一个算法应有一个或多个输出,输出的量是算法计算的结果。
③确定性。
算法的每一步都应确切地、无歧义地定义。
对于每一种情况,需要执行的动作都应严格地、清晰地规定。
④有穷性。
一个算法无论在什么情况下都应在执行有穷步后结束。
⑤有效性。
算法中每一条运算都必须是足够基本的。
就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。
算法和程序不同,程序可以不满足上述的特性(4)。
例如,一个操作系统在用户未使用前一直处于“等待”的循环中,直到出现新的用户事件为止。
这样的系统可以无休止地运行,直到系统停工。
(3)、设n为正整数,分析下列各程序段中加下划线的语句的程序步数
(1)for(inti=1;
i<
=n;
i++)
for(intj=1;
j<
j++){
c[i][j]=0.0;
for(intk=1;
k<
k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
顺序表:
顺序表的定义和特点;
顺序表的类型定义;
顺序表的查找、插入和删除;
单链表:
单链表的结构;
单链表的类型定义;
单链表中的插入与删除;
带表头结点的单链表;
静态链表;
线性表的逻辑结构特性,以及线性表的两种存储实现方式;
链表与数组一样,是一种实现级结构。
有动态链表和静态链表之分;
顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;
单链表的类定义、构造函数、单链表的插入与删除算法
掌握:
双向链表的特点,双向链表的类定义及相关操作的实现,用双向链表解决问题的方法。
(1)、将顺序表(a1,a2,...,an)重新排列为以a1为界的两部分:
a1前面的值均比a1小,a1后面的值都比a1大(这里假设数据元素的类型具有可比性,不妨设为整型),操作前后如图2.1所示。
这一操作称为划分。
a1也称为基准。
划分的方法有多种,下面介绍的划分算法其思路简单,性能较差。
【解答】:
从第二个元素开始到最后一个元素,逐一向后扫描:
(1)当前数据元素aI比a1大时,表明它已经在a1的后面,不必改变它与a1之间的位置,继续比较下一个。
(2)当前结点若比a1小,说明它应该在a1的前面,此时将它上面的元素都依次向下移动一个位置,然后将它置入最上方。
25
30
20
60
10
35
15
.
划分前划分后图2.1顺序表的划分算法如下:
voidpart(SeqList*L)
{inti,j;
datatypex,y;
x=L->
data[0];
/*将基准置入x中*/
for(i=1;
i<
=L->
last;
i++)
if(L->
data[i]<
x)/*当前元素小于基准*/
{y=L->
data[i];
for(j=i-1;
j>
=0;
j--)/*移动*/
L->
data[j+1]=L->
data[j];
L->
data[0]=y;
}
算法2.1
本算法中,有两重循环,外循环执行n-1次,内循环中移动元素的次数与当前数据的大小有关,当第i个元素小于a1时,要移动它上面的i-1个元素,再加上当前结点的保存及置入,所以移动i-1+2次,在最坏情况下,a1后面的结点都小于a1,故总的移动次数为:
即最坏情况下移动数据时间性能为O(n2)。
这个算法简单但效率低,在第9章的快速排序中时我们将介绍另一种划分算法,它的性能为O(n)。
(2)、已知单链表H,写一算法将其倒置。
即实现如图2.2的操作。
(a)为倒置前,(b)为倒置后。
(b)
依次取原链表中的每个结点,将其作为第一个结点插入到新链表中去,指针p用来指向当前结点,p为空时结束。
算法如下:
voidreverse(LinklistH)
{LNode*p;
p=H->
next;
/*p指向第一个数据结点*/
H->
next=NULL;
/*将原链表置为空表H*/
while(p)
{q=p;
p=p->
q->
next=H->
/*将当前结点插到头结点的后面*/
next=q;
}
算法2.2
该算法只是对链表中顺序扫描一边即完成了倒置,所以时间性能为O(n)。
(3)、已知单链表L,写一算法,删除其重复结点,即实现如图2.3的操作。
(a)为删除前,(b)为删除后。
【解答】:
用指针p指向第一个数据结点,从它的后继结点开始到表的结束,找与其值相同的结点并删除之;
p指向下一个;
依此类推,p指向最后结点时算法结束。
voidpur_LinkList(LinkListH)
{LNode*p,*q,*r;
/*p指向第一个结点*/
if(p==NULL)return;
while(p->
next)
while(q->
next)/*从*p的后继开始找重复结点*/
{if(q->
next->
data==p->
data)
{r=q->
/*找到重复结点,用r指向,删除*r*/
next=r->
free(r);
}/*if*/
elseq=q->
}/*while(q->
next)*/
/*p指向下一个,继续*/
}/*while(p->
算法2.3
该算法的时间性能为O(n2)。
(4)、设有两个单链表A、B,其中元素递增有序,编写算法将A、B归并成一个按元素值递减(允许有相同值)有序的链表C,要求用A、B中的原结点形成,不能重新申请结点。
算法思路:
利用A、B两表有序的特点,依次进行比较,将当前值较小者摘下,插入到C表的头部,得到的C表则为递减有序的。
LinkListmerge(LinkListA,LinkListB)
/*设A、B均为带头结点的单链表*/
{LinkListC;
LNode*p,*q;
p=A->
q=B->
C=A;
/*C表的头结点*/
C->
free(B);
while(p&
&
q)
{if(p->
data<
q->
{s=p;
p=p->
else
{s=q;
q=q->
}/*从原AB表上摘下较小者*/
s->
next=C->
/*插入到C表的头部*/
next=s;
}/*while*/
if(p==NULL)p=q;
while(p)/*将剩余的结点一个个摘下,插入到C表的头部*/
算法2.4
该算法的时间性能为O(m+n)。
1、教学内容:
栈:
栈的抽象数据类型;
栈的顺序存储表示;
栈的链接存储表示
队列:
队列的抽象数据类型;
队列的顺序存储表示;
队列的链接存储表示;
队列的应用举例;
2、教学要求:
熟练掌握:
栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现。
特别注意栈空和栈满的条件
在表达式计算时栈是如何使用的;
熟练掌握:
队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现。
特别是循环队列中队头与队尾指针的变化情况;
1、铁路进行列车调度时,常把站台设计成栈式结构的站台,如右图所示。
试问:
(1)设有编号为1,2,3,4,5,6的六辆列车,顺序开入栈式结构的站台,则可能的出栈序列有多少种?
(2)若进站的六辆列车顺序如上所述,那么是否能够得到435612,325641,154623和135426的出站序列,如果不能,说明为什么不能;
如果能,说明如何得到(即写出"
进栈"
或"
出栈"
的序列)。
(1)
可能的不同出栈序列有种。
(2)不能得到435612和154623这样的出栈序列。
因为若在4,3,5,6之后再将1,2出栈,则1,2必须一直在栈中,此时1先进栈,2后进栈,2应压在1上面,不可能1先于2出栈。
154623也是这种情况。
出栈序列325641和135426可以得到。
4
字符串:
字符串的抽象数据类型;
字符串操作的实现;
字符串的定义及实现
作为抽象数据类型的数组:
数组的定义和初始化;
作为抽象数据类型的数组;
数组的顺序存储方式;
作为抽象数据类型的数组的定义,数组的按行顺序存储与按列顺序存储;
稀疏矩阵的定义及其数组实现;
3、习题与解答:
(1)、画出下列广义表的图形表示和它们的存储表示:
(1)D(A(c),B(e),C(a,L(b,c,d)))
(2)J1(J2(J1,a,J3(J1)),J3(J1))
(1)D(A(c),B(e),C(a,L(b,c,d)))
(2)J1(J2(J1,a,J3(J1)),J3(J1))
J1
J2
J3
C
B
A
D
c
b
a
e
L
d
0J1
∧
0B
0A
1e
2
0D
1c
1a
0J2
0C
1a
0J3
0L
1d
1b
树和森林的概念:
树的定义;
树的术语;
树的抽象数据类型;
二叉树:
二叉树的定义;
二叉树的性质;
二叉树的抽象数据类型
二叉树的表示:
顺序表示;
二叉链表表示
遍历二叉树:
中序遍历;
前序遍历;
后序遍历;
应用二叉树遍历的事例;
二叉树的计数
堆:
堆的定义;
堆的建立;
堆的插入与删除;
堆的调整算法
树与森林:
树的存储表示;
森林与二叉树的转换;
遍历树;
遍历森林
哈夫曼树:
路径长度;
哈夫曼树;
霍夫曼编码
树和森林的概念。
包括树的定义、树的术语、树的抽象数据类型
二叉树的概念、性质及二叉树的表示
二叉树的遍历方法
树与森林的实现,重点在用二叉树实现
树的遍历算法
二叉树的计数方法及从二叉树遍历结果得到二叉树的方法
哈夫曼树的实现方法、构造哈夫曼编码的方法及带权路径长度的计算
(1)、列出右图所示二叉树的叶结点、分支结点和每个结点的层次。
二叉树的叶结点有⑥、⑧、⑨。
分支结点有①、②、③、④、⑤、⑦。
结点①的层次为0;
结点②、③的层次为1;
结点④、⑤、⑥的层次为2;
结点⑦、⑧的层次为3;
结点⑨的层次为4。
(2)、使用
(1)顺序表示和
(2)二叉链表表示法,分别画出右图所示二叉树的存储表示。
0123456789
①
①②③④⑤⑥⑦
③
②
101112131415161718
⑤
⑥
④
⑧⑨
⑧
⑦
顺序表示
二叉链表表示
⑨
(3)、在结点个数为n(n>
1)的各棵树中,高度最小的树的高度是多少?
它有多少个叶结点?
多少个分支结点?
高度最大的树的高度是多少?
结点个数为n时,高度最小的树的高度为1,有2层;
它有n-1个叶结点,1个分支结点;
高度最大的树的高度为n-1,有n层;
它有1个叶结点,n-1个分支结点。
(4)、试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
【解答】
具有3个结点的树具有3个结点的二叉树
(5)、请画出右图所示的树所对应的二叉树。
对应二叉树
(6)、已知一棵二叉树的前序遍历的结果是ABECDFGHIJ,中序遍历的结果是EBCDAFHIGJ,试画出这棵二叉树。
当前序序列为ABECDFGHIJ,中序序列为EBCDAFHIGJ时,逐步形成二叉树的过程如下图所示:
F
G
E
HIGJ
CD
FHIGJ
H
J
HI
I
EBCD
(7)、给定权值集合{15,03,14,02,06,09,16,17},构造相应的霍夫曼树,并计算它的带权外部路径长度。
(Ⅰ)
05
17
16
09
06
14
F:
02
03
(Ⅱ)
(Ⅲ)
11
(Ⅴ)
33
29
(Ⅳ)
82
(Ⅶ)
49
(Ⅵ)
此树的带权路径长度WPL=229。
(8)、假定用于通信的电文仅由8个字母c1,c2,c3,c4,c5,c6,c7,c8组成,各字母在电文中出现的频率分别为5,25,3,6,10,11,36,4。
试为这8个字母设计不等长Huffman编码,并给出该电文的总码数。
【解答】已知字母集{c1,c2,c3,c4,c5,c6,c7,c8},频率{5,25,3,6,10,11,36,4},则Huffman编码为
c1
c2
c3
c4
c5
c6
c7
c8
0110
10
0000
0111
001
010
11
0001
电文总码数为4*5+2*25+4*3+4*6+3*10+3*11+2*36+4*4=257
100
39
61
C2
22
36
C7
C6
C5
C4
C1
C8
C3
第七章图
图的基本概念:
图的基本概念;
图的抽象数据类型
图的存储表示:
邻接矩阵;
邻接表;
邻接多重表
图的遍历与连通性:
深度优先搜索;
广度优先搜索;
连通分量;
关节点与重连通分量
最小生成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成人 函授教育