数据结构课程提纲

简介: 数据结构课程提纲

第一讲:绪论

1. 数据结构基本概念

数据结构、数据元素、数据结构三元素、数据类型、抽象数据类型

2.算法的基本概念

算法、算法复杂度、渐进复杂度、常见的渐进复杂度、复杂度分析

3. 递归与迭代

分治与减治、递归复杂度方程、递归调用实例图

第二讲:向量

1. 向量基本概念

数据结构分类、序列(线性表)、向量(顺序表)

2. 无序向量的基本接口及复杂度分析

查找、插入、删除、去重、遍历、排序(归并排序、插入排序、选择排序)

3.有序向量的基本接口及复杂度分析

唯一化、二分查找、二分查找的平均查找长度

第三讲:列表

1. 列表基本概念、特性及其与向量的比较

2. 单向链表的基本操作

带表头结点与不带表头结点、列表插入、删除、表头插入删除、表尾插入删除、双向链表

3. 双向链表的接口实现

查找、删除、去重、遍历、排序(归并排序、插入排序、选择排序)

第四讲:栈与队列

1. 栈的基本概念与简单实现

2. 栈的应用:括号匹配、逆向输出

3. RPN问题

中缀表达式与逆序表达式转换,逆序表达式求值

4. 栈混洗与卡特兰数

5. 队列的基本概念与实现

循环队列,队列的单向链表实现

第五讲:串

串的KMP匹配算法

Next表构造

复杂度分析

第六讲:数组

1. 多维数组的存储表示

2. 特殊矩阵压缩存储(对称、三角)

3. 稀疏矩阵压缩存储

三元组、快速转置、十字链表

第七讲:二叉树

1. 树与二叉树的基本概念

树的概念、递归结构、二叉树、性质(公式)

2. 树与二叉树转换

孩子兄弟表示、树(森林)到二叉树的转换、二叉树到树(森林)的转换

3. 二叉树的基本实现

4. 二叉树遍历

广度优先、深度优先(前序、中序、后序)、深度优先的递归实现、先序及中序遍历的迭代实现

5. 二叉树的重构

6. 哈夫曼编码

哈夫曼树构造、带权路径长度计算、哈夫曼编码

第八讲:二叉搜索树

1. 二叉搜索树的基本概念

2. 二叉搜索树的搜索、插入、删除

直接后继与直接前驱

3. 平衡二叉搜索树

局部旋转平衡调整、3+4调整、插入的平衡调整、删除的直接替换与迭代旋转调整

第九讲:KD树  (不考)

二叉树递归实现的技巧(剪枝优化)

1. KD树的递归建立

2. KD树的范围查找

3. KD树的最近邻

第十讲:图(上)

1.图的基本概念

边与顶点、有向图、无向图、邻接矩阵、邻接表

2. 图的遍历

广度优先遍历、深度优先遍历(递归实现与迭代实现)、复杂度分析

3.最小生成树(Prim)

程序实现、手工实现、复杂度分析

4.最短路径树(Dij)

程序实现、手工实现、复杂度分析

第十一讲:优先级队列

1. 优先级队列的概念与目标

2.堆的完全二叉树与向量存储的转换

3. 堆的基本接口实现与复杂度分析

插入、删除、构建、排序

4. 优先级队列的应用与复杂度分析

哈夫曼编码问题的优化、Dijkstra问题的优化等、复杂度分析

第十二讲:图(下)

1. 图搜索统一框架

顶点更新与选取的迭代、栈实现与队列实现、栈实现与递归实现的转化、基于优先级队列的Dij和Prim的优化及复杂度分析

2. Ballman与Ford算法,复杂度分析

3. Floyd算法,复杂度分析

4. 拓扑排序与实现

第十三讲:散列

1. 散列查找的基本概念和应用范围

2. 散列函数

MAD法等

3. 散列冲突排解方法

独立链、开放定址:线性试探、(双)平方试探

4. 桶排序与基数排序

第十四讲:排序

1. 希尔排序

2. 快速排序

3. 中值查找

4. 排序算法的复杂度比较

5. 各种排序算法的基本实现

第十五讲:B树与红黑树

1. B树

B树的特点、B树的插入、B树的删除

2. 红黑树  

红黑树的优点、红黑树与B树的转换、红黑树的插入手工实现

相关文章
|
JavaScript Java 测试技术
基于ssm+vue.js的数据结构课程网络学习平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的数据结构课程网络学习平台附带文章和源代码设计说明文档ppt
93 2
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的数据结构课程网络学习平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的数据结构课程网络学习平台的详细设计和实现(源码+lw+部署文档+讲解等)
|
存储 算法 搜索推荐
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(二)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
361 2
|
存储 算法 C++
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(一)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
781 2
数据结构课程_01.线性表
数据结构课程_01.线性表
57 0
|
存储 Ruby
【Ruby on Rails全栈课程】2.8 ruby的数据结构--哈希(Hash)
1、哈希(Hash) 哈希也是存储对象的一个集合,哈希里面的元素是以"key" => “value”(键值对)这样的形式存在的,元素是没有顺序的,哈希的键可以是任意对象,键必须的唯一的,键通常用符号(Symbol)表示。 哈希的创建有两种形式,两种形式都是一样的,最常使用第二种:
223 0
|
索引 Ruby
【Ruby on Rails全栈课程】2.6 ruby的数据结构--数组(Array)
数组是一个集合,但是不仅仅是数字的集合,可以是任何对象(String、 Integer、 Fixnum、 Hash、 Symbol 等对象)的集合。数组的索引是从0开始的有序整数,可以通过正数索引或者负数索引来寻找数组中的值,数组中的值是有顺序的。
124 0
|
存储 算法 索引
“数据结构基础”系列网络课程主页
前言   自从下决心要解决学生动手能力差的问题,开始了课程实践资源的建设之旅;自迷上了翻转课堂,所教课程的视频,也就逐渐形成了体系。在为我自己的校内学生服务的同时,也希望能够让更多人有机会用到。   自全身心投入教学,收入、奖金的渠道也便收缩到了极致。接受CSDN学院商业运作的规则,将课程投放此处,一则创收一些,弥补付出数倍精力建设资源而只能喝大锅饭中稀粥中的不平衡,二则
1795 0
|
存储 算法
数据结构课程主页-2014级
前言   新学期,我接受安排,承担“数据结构”课程的教学任务。历时四年的,针对大一的“程序设计基础”课程的教学暂时停止。在这四届学生身上,从最初的有博客交作业,到网络习题课,再到课堂录屏上网,然后有了翻转课堂。一个不安分的老师,带了四届勇于改变的学生。   其实,当初沉到大一,探讨针对大一学生的教学方法,我似乎也有些疲态,正想着将这四年处理教学问题中的心得,在和大二的学生
1818 0
|
存储 算法 测试技术
数据结构课程的实践方法指导
  有不少人说数据结构课程抽象,学习起来感到困难。有些同学放弃了,有些同学拿出了高中学习时练熟的功夫,强行理解,死记硬背,结果辛苦不少,效果不佳,反倒得到很多枯燥的感受。   其实,数据结构课中有不少理论性分析的内容,但对于本科生学习的内容,以及要达到目标,还是以实践性为主的。在学习的方法上做出改变,这门课程就可以展示出生动的实践性味道来。这就要求在学习过程中,将实践学习有
1104 0