数据结构教学大纲与考核要求Word文档格式.docx
- 文档编号:19041792
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:16
- 大小:269.04KB
数据结构教学大纲与考核要求Word文档格式.docx
《数据结构教学大纲与考核要求Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构教学大纲与考核要求Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
链式栈与链式队列
本章学时建议
10学时
第4章,字符串与特殊矩阵
字符串
难点是快速模式匹配算法的思想,next[]向量的求解方法
模式匹配
快速模式匹配(KMP)算法
特殊矩阵的压缩存储
第5章,递归
递归程序设计
重点是递归程序的执行过程分析,
复杂递归到非递归程序的转换
递归程序执行过程分析
递归程序到非递归程序的转换(重点介绍中点优先输出问题的转换方法,背包问题可让学生课后阅读)
递归程序应用举例
另补充一些基于线性表的递归问题举例(如求线性表的最大数,链表倒序输出,线性表倒置等)
《数据结构》授课内容与学时分配建议
教材:
《数据结构》(C语言版)第二版,李云清,杨庆红,揭安全编著,人民邮电出版社
撰写人:
揭安全、李云清、杨庆红、化志章、钟林辉、石海鹤
第6章,树型结构
树的基本概念
重点是树的存储结构,树的遍历及其特点
树的存储表示
树的遍历
树的线性表示(括号表示)
树的线性表示(层号表示)
◎
第7章,二叉树
二叉树的基本概念
重点是二叉树的遍历(递归与非递归)
基于二叉树的递归算法
二叉树的存储结构
二叉树的遍历递归算法(程序实现)
二叉树遍历的非递归实现(程序实现)
二叉树上的其它运算(递归程序实现)
穿线二叉树(思想与方法)
树、森林与二叉树的相互转换方法
第8章,图
图的概念
重点:
图的遍历,最小生成树,最短路径,拓扑排序,关键路径算法的思想
图的存储结构(邻接矩阵,邻接表)
图的遍历(BFS,DFS)
最小生成树
最短路径
拓扑排序
关键路径算法
第9章,检索
顺序表检索
重点是二叉排序树、Huffman树与散列表
二叉排序树
平衡二叉排序树(AVL树)
最佳二叉排序树
Huffman树及其应用
B-树
散列
第10章,排序
排序的基本概念
重点掌握算法思想,算法程序实现,算法时间性复杂性与稳定性分析。
直接插入排序、二分插入排序、Shell排序
直接选择排序(C语言学过)、堆排序
冒泡排序(C语言学过)、快速排序
归并排序
基数排序
6学时
以上教学学时建议合计62节理论学时,加上节假日因素,教学内容尽量控制在16周(64节)完成。
第16或第17周上机考试,第17周复习答疑,18-19(20)周学校期末考试。
★为重点内容,◎为要求学生课后自学内容(建议教师提问考核)
附1、《数据结构》考研大纲
【考查目标】
1.理解数据结构的基本概念;
掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。
2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。
3.能够选择合适的数据结构和方法进行问题求解。
一、线性表
(一)线性表的定义和基本操作
(二)线性表的实现
1.顺序存储结构
2.链式存储结构
3.线性表的应用
二、栈、队列和数组
(一)栈和队列的基本概念
(二)栈和队列的顺序存储结构
(三)栈和队列的链式存储结构
(四)栈和队列的应用
(五)特殊矩阵的压缩存储
三、树与二叉树
(一)树的概念
(二)二叉树
1.二叉树的定义及其主要特征
2.二叉树的顺序存储结构和链式存储结构
3.二叉树的遍历
4.线索二叉树的基本概念和构造
5.二叉排序树
6.平衡二叉树
(三)树、森林
1.书的存储结构
2.森林与二叉树的转换
3.树和森林的遍历
(四)树的应用
1.等价类问题
2.哈夫曼(Huffman)树和哈夫曼编码
四、图
(一)图的概念
(二)图的存储及基本操作
1.邻接矩阵法
2.邻接表法
(三)图的遍历
1.深度优先搜索
2.广度优先搜索
(四)图的基本应用及其复杂度分析
1.最小(代价)生成树
2.最短路径
3.拓扑排序
4.关键路径
五、查找
(一)查找的基本概念
(二)顺序查找法
(三)折半查找法
(四)B-树
(五)散列(Hash)表及其查找
(六)查找算法的分析及应用
六、内部排序
(一)排序的基本概念
(二)插入排序
1.直接插入排序
2.折半插入排序
(三)气泡排序(bubblesort)
(四)简单选择排序
(五)希尔排序(shellsort)
(六)快速排序
(七)堆排序
(八)二路归并排序(mergesort)
(九)基数排序
(十)各种内部排序算法的比较
(十一)内部排序算法的应用
【知识点解析】
1.线性表
线性表是一种最简单的数据结构,在线性表方面,主要考查线性表的定义和基本操作、线性表的实现。
在线性表实现方面,要掌握的是线性表的存储结构,包括顺序存储结构和链式存储结构,特别是链式存储结构,是考查的重点。
另外,还要掌握线性表的基本应用。
2.栈、队列和数组
栈和队列是两种特殊的线性表,在这方面,要求我们掌握栈和队列的基本概念,以及他们之间的区别。
对于栈和队列的存储结构(包括顺序存储结构、链式存储结构)要有较深的理解,对于栈和队列的应用,例如,排队问题、子程序调用问题、表达式问题等,要搞清楚。
一维数组属于线性表范畴,但多维数组不属于线性表。
在这方面,主要掌握数组的存储结构,例如按行优先、按列优先等,某个元素存在的地址是什么。
对于特殊矩阵(二维数组)的压缩存储原理也要搞清楚。
3.树与二叉树
二叉树和树是两种不同的概念,这一点是必须要搞清楚的。
在这个部分,我们要掌握树的定义、二叉树的定义及主要特征(特殊的二叉树、二叉树的性质)。
在二叉树的顺序存储结构和链式存储结构方面,特别是链式存储结构,因为很多应用都是建立在链式存储基础上,例如,二叉树的遍历(前序遍历、中序遍历、后序遍历)就是一种典型的应用。
在特殊的二叉树中,完全二叉树的概念是必须要搞清楚的,其次,线索二叉树的基本概念和构造、二叉排序树、平衡二叉树的基本概念和应用,特别是二叉排序树的基本性质和特点要能很好地理解。
多棵独立的树就组成了森林,树的存储结构和遍历、森林的遍历、树和二叉树的转换、森林和二叉树的转换等知识,也要有了了解。
最后就是树的应用,通常会作为综合应用类试题出现,包括等价类问题、哈夫曼(Huffman)树和哈夫曼编码等。
4.图
在数据结构中,图的结构是最复杂的,这里的概念也是最多的。
我们要掌握图的基本概念(有向图、无向图、连通、路径、子图、出度、入度、生成树、最短路径、关键路径等)。
图的存储及基本操作主要有邻接矩阵法和邻接表法,我们要掌握这有向图和无向图的这2种存储方法,要清楚图的连通和存储方法之间的关系。
例如,一个顶点的出度和临界矩阵中1的个数有什么关系,等等。
图的遍历方法有深度优先搜索和广度优先搜索,我们要掌握这2种遍历方法的算法实现。
给出一个具体的图,要能知道它的遍历次序。
在数据结构课程中,图的基本应用是最多的,也是最复杂的,我们要掌握这些应用的复杂度分析。
要掌握的具体应用主要包括最小(代价)生成树、最短路径、拓扑排序、关键路径。
在给出的一个具体的图中,我们要会利用已知条件,求出上述应用的结果。
5.查找
在给定的数据集合中查找某个关键值就是查找,查找的基本方法主要有顺序查找法、折半查找法、B-树、散列(Hash)表及其查找。
考的比较多的是折半查找和散列表,我们要掌握它们的基本概念和方法,例如散列表的碰撞如何解决,装载因子的概念等。
另外,我们要掌握各种查找算法的分析及应用,最好能把各种查找在查找成功、查找失败的情况下的最好、平均、最坏的平均查找次数的计算方法搞清楚。
6.内部排序
根据考试大纲,只考查内部排序。
所谓内部排序,就是在内存中进行排序。
在这一部分中,主要要掌握直接插入排序、折半插入排序、冒泡排序(bubblesort)、简单选择排序、希尔排序(shellsort)、快速排序、堆排序、二路归并排序(mergesort)、基数排序的基本概念和方法。
搞清楚这些排序方法的流程,以及它们之间的区别。
在这个知识点,一个很重要的考查点就是各种内部排序算法的比较,一般的书上都会有这样的一个表格,列出了所有排序在各种情况下(最好、最坏、平均)的时间复杂度和空间复杂度,这个表是需要我们记下来的。
当然,如果我们能掌握复杂度的计算方法,自己能推算出来,那就更好了。
最后,就是要掌握内部排序算法的基本应用,以及算法的实现。
附2、《数据结构》期末考试笔试样题
2007-2008学年上学期《数据结构》期末考试试题B
课程代号:
注意事项:
请将答案全部写到答题纸上,并注明题号!
一、单项选择题(每小题2分,共16分)
1.若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上()
A.操作的有限集合B.映象的有限集合
C.类型的有限集合D.关系的有限集合
2.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->
next->
next=head,则()
A.p指向头结点B.p指向尾结点
C.*P的直接后继是尾结点D.*p的直接后继是头结点
3.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是()
A.O
(1)B.O(n)C.O(nlogn)D.O(n2)
4.队列和栈的主要区别是()
A.逻辑结构不同B.存储结构不同
C.所包含的运算个数不同D.限定插入和删除的位置不同
5.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为()
A.4B.5C.6D.7
6.一棵含18个结点的二叉树的高度至少为()
A.3B.4C.5D.6
7.在一个带权连通图G中,权值最小的边一定包含在G的( )
A.最小生成树中B.深度优先生成树中
C.广度优先生成树中D.深度优先生成森林中
8.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个数为有序子序列。
对这些子序列进行一趟长度为2的两两归并的结果是()
A.{25,36,48,72,23,40,79,82,16,35}
B.{25,36,48,72,16,23,40,79,82,35}
C.{25,36,48,72,16,23,35,40,79,82}
D.{16,23,25,35,36,40,48,72,79,82}
二、算法阅读题(每小题8分,共16分)
1.带头结点的单链表存储结构定义如下:
typedefstructnode
{intdata;
structnode*next;
}linknode;
typedeflinknode*linklist;
阅读算法fun(linklisthead),回答:
(1)该算法的主要功能是什么?
(2)对如下所示的单链表head,画出执行fun(head)单链表的状态。
(3)该算法的时间复杂度是多少?
voiddelete(linklisthead)
{linklistpre,p,q;
p=head->
next;
while(p)
{pre=p;
q=p->
while(q)
{while(q&
&
q->
data!
=p->
data)/*查找与p结点相同的结点*/
{pre=q;
q=q->
}
if(q)/*查找到了*/
{pre->
next=q->
/*删除结点q*/
free(q);
q=pre->
p=p->
}
2.已知二叉树的存储结构为二叉链表,阅读下面算法。
typedefstructnode1{
chardata;
structnode1*next;
}listnode;
typedeflistnode*linklist;
linklistleafhead=NULL;
linklistinorder(bintreet)/*t为二叉树的根结点指针*/
{linklists;
if(t){
inorder(t->
lchild);
if((t->
lchild==NULL)&
(t->
rchild==NULL))
{s=(linklist)malloc(sizeof(listnode));
s->
data=t->
data;
next=leafhead;
leafhead=s;
rchild);
对于如右所示的二叉树
(1)画出执行上述算法后所建立的链表结构;
(2)说明该算法的功能。
三、解答题(每小题10分,共50分)
1.已知一棵二叉树的中序遍历结果为:
DBFEAGHCI,后序遍历结果为:
DFEBHGICA。
(1)画出这棵二叉树,并写出它的前序遍历结果;
(2)将这棵二叉树转换成等价的森林或树。
2.请画出初始序列(212,26,172,126,8,56,23,2,6)的初始堆形,判断其是否是堆,如果不是请将其调整成堆(写出调整的过程)。
3.假设通信电文使用的字符集为{a,b,c,d,e,f,g},字符的哈夫曼编码依次为:
0110,10,110,111,00,0111和010。
(1)请根据哈夫曼编码画出此哈夫曼树,并在叶子结点中标注相应字符;
(2)若这些字符在电文中出现的频度分别为:
3,35,13,15,20,5和9,求该哈夫曼树的带权路径长度。
4.从空树起,依次插入关键字40,8,90,15,62,95,12,23,56,32,构造一棵二叉排序树。
(1)画出该二叉排序树
(2)画出删去该树中元素值为90的结点之后的二叉排序树。
5.假设用迪杰斯特拉(Dijkstra)算法求下列图中从顶点a到其余各顶点的最短路径,按求解过程依次写出各条最短路径及其长度。
四、算法设计题(第1小题8分,第2小题10分,共18分)
1、编写函数voidinsertsort(list[],intn),对长度为n的整型数组list进行直接插入排序。
2、已知二叉树的存储结构及栈定义如下:
{chardata;
structnode*lchild,*rchild;
}binnode;
typedefbinnode*bintree;
typedefstructstack/*栈结构定义*/
{bintreedata[100];
inttop;
/*栈顶指针*/
}seqstack;
voidpush(seqstack*s,bintreet)/*进栈*/
{s->
data[++s->
top]=t;
bintreepop(seqstack*s)/*出栈*/
{if(s->
top!
=-1)
top--;
return(s->
data[s->
top+1]);
else
returnNULL;
}
编写一个函数preorder(bintreet)对二叉树t进行非递归前序遍历。
2010年全国研究生入学考试计算机科学与技术学科联考
《数据结构》部分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 教学大纲 考核 要求