郑州大学现代远程教育
《数据结构》课程(本科)
学习指导书
郭纯一 编
课程内容与基本要求
“数据结构”在计算机科学中是一门综合性的专业基础课。本课程将主要介
绍数据结构的基本概念和术语、非数值计算中常用的数据结构(线性表、栈和队列、串、树和图)和基本技术(查找和排序方法)三大部分。
本课程要求学生在掌握线性表、栈和队列、串、树和二叉树、图等基本数据类型的基础上,会分析各种数据结构的特性,会根据应用需求为所涉及的数据合理选择适当的逻辑结构和存储结构,并能据此设计实现问题的算法;还应初步掌握算法的时间和空间效率的分析方法。
课程学习进度与指导 章节 第一章 课程内容 绪论 学时分配 4学时 10学时 学习指导 (均以课件学习为主) 重点掌握基本概念和时间复杂度的计算方法 重点掌握顺序结构和链式结构表示线性表的方法和操作的实现;结合具体例子理解编程实现一个问题的2种方法 重点掌握栈和队列的特点以及它们各自的存储表示,尤其是顺序栈和循环队列的实现;结合具体例子理解栈和队列的应用 重点掌握串的术语、串操作结果和不同存储结构的特点 重点掌握二叉树的定义、存储、性质、遍历算法(递归)及应用、线索化;掌握树和森林与二叉树的转换以及Huffman树和Huffman编码的构造方法 重点掌握图的术语、存储、遍历算法及应用;掌握最小生成树的2种构造方法及特点、会求拓扑排序序列和单源最短路径 重点掌握各种动态查找表的构造过程、性能分析、插入/删除方法;掌握静态查找表的顺序、折半和分块查找及ASL求法 掌握关于排序的术语及分类方法;重点掌握插入排序、交换排序、选择排序等内排序方法及其性能分析方法 第二章* 线性表 第三章 第四章 栈和队列 串 8学时 2学时 第七章* 树和二叉树 10学时 第八章 图 8学时 第九章* 查找 8学时 第十章* 排序
8学时 第一章
一、 章节学习目标与要求
绪论
1、理解数据抽象和信息隐蔽原则
2、掌握所有的基本概念和术语、掌握时间复杂度的计算方法、会用C语言描述抽象数据类型和算法;能够熟练使用C语言编写程序
二、 本章重点、难点
重点:基本概念和术语,C语言描述算法的方式,简单程序的时间复杂度的求法。 难点:时间复杂度的计算方法和原则。
三、 章节练习
(一)选择题:
1. 具有线性结构的数据结构是__________。
A.图 B. 树 C. 集合 D. 栈 2. 计算机算法是指________。
A.计算方法和运算结果 B.调度方法 C. 解决某一问题的有限运算系列 D. 排序方法 3. 线性结构中,最后一个结点有________个后继结点。 A. 0 B. 1 C. 任意多 4. 算法分析的目的是________。
A. 找出数据结构的合理性 B. 研究算法中输入和输出的关系 C. 分析算法的效率以求改进 D.分析算法的可读性和可行性 5. 具有非线性结构的数据结构是__________。
A.图 B. 线性表 C. 串 D. 栈
6.算法具有5个特性:________、________、________、输入和输出。
A. 稳定性、确定性、可行性 B. 有穷性、确定性、可行性 C. 有穷性、安全性、可行性 D. 有穷性、确定性、可移植性 7.设n为正整数。则下面程序段的时间复杂度为________。
i=1; k=0;
while(i<=n-1){
@ k+=10*i;