# DataStructure_Algorithm_ZJU
中国大学慕课上陈越老师和何钦铭老师主讲的数据结构课程[课程链接](https://www.icourse163.org/course/zju0901-93001?from=study),本项目整理课程相关内容,并利用Python将课程相关作业进行实现,相关视频内容[视频链接](https://www.bilibili.com/video/av18586085?from=search&seid=3036863598612909610),具体题目信息可以直接搜索题目名字进行查询。
To-do:
- [ ] 加入其他语言完成作业的branch,欢迎大家fork添加!
- [ ] 没有达到满分的作业,如果发现请在issue中添加,我会尽早解决。
## [第一讲 基本概念](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5)
通过研究很多例子去理解究竟什么是“数据结构”、为什么在教数据结构的时候要讲算法、以及相关的基本概念和常用术语。希望这次课的学习能让你明白为什么要学,并且在后面的学习中知道哪些术语是什么意思。
### 课件内容:
* 1.1 什么是数据结构
* 1.2 什么是算法
* 1.3 应用实例:最大子列和问题
### 题目内容:
* 01-复杂度1 最大子列和问题
* 01-复杂度2 Maximum Subsequence Sum
* 01-复杂度3 二分查找
## [第二讲 线形结构](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E7%BA%BF%E5%BD%A2%E7%BB%93%E6%9E%84)
介绍最基础的一种数据结构类型:线性结构,包括线性表、堆栈和队列。重点关注:如何用数组或者链表存储对象及关系、如何实现主要操作,以及有哪些典型的应用。
### 课件内容:
* 2.1 线性表及其实现
* 2.2 堆栈
* 2.3 队列
* 2.4 应用实例:多项式加法运算
* 小白专场:多项式乘法与加法运算- C实现(3小节共27:43)
* 线性结构之习题选讲[陈越]:Reversing Linked List
### 题目内容:
* 02-线性结构1 两个有序链表序列的合并
* 02-线性结构2 一元多项式的乘法与加法运算
* 02-线性结构3 Reversing Linked List
* 02-线性结构4 Pop Sequence
## [第三讲 树(上)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%A0%91%EF%BC%88%E4%B8%8A%EF%BC%89)
一般树的表示、二叉树及其存储、二叉树的遍历,当然最后还有详细讲解二叉树同构问题的"小白专场"。
### 课件内容:
* 3.1 树与树的表示
* 3.2 二叉树及存储结构
* 3.3 二叉树的遍历
* 小白专场:树的同构 - C语言实现
* 树之习题选讲-Tree Traversals Again
### 题目内容:
* 03-树1 树的同构
* 03-树2 List Leaves
* 03-树3 Tree Traversals Again
## [第四讲 树(中)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%A0%91%EF%BC%88%E4%B8%AD%EF%BC%89)
二叉搜索树,平衡二叉树。
### 课件内容:
* 4.1 二叉搜索树
* 4.2 平衡二叉树
* 小白专场:是否同一棵二叉搜索树- C实现
* 树之习题选讲-Complete Binary Search Tree
### 题目内容:
* 04-树4 是否同一棵二叉搜索树
* 04-树5 Root of AVL Tree
* 04-树6 Complete Binary Search Tree
## [第五讲 树(下)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%A0%91%EF%BC%88%E4%B8%8B%EF%BC%89)
"堆":类似操作系统进程调度这样的场景中,我们需要管理一个带任务优先级的队列,经常要从优先队列中获取优先级最高的任务。堆结构将告诉你如何高效地解决这类问题。<br>
"哈夫曼树和哈夫曼编码":编码是通讯和数据传输中最基本的问题。如何针对不同的出现频率高效地编码以提高传输和存储的效率?哈夫曼树就是一种很好的方法。<br>
"集合及运算":有许多貌似复杂的问题可以归结为等价类划分问题。以树形式表示的并查集方法就可以很方便、高效地解决等价类划分问题。
### 课件内容:
* 5.1 堆
* 5.2 哈夫曼树与哈夫曼编码
* 5.3 集合及运算
* 小白专场:堆中的路径 - C语言实现
* 小白专场[陈越]:File Transfer - C语言实现
* 树之习题选讲- Huffman Codes
### 题目内容:
* 05-树7 堆中的路径
* 05-树8 File Transfer
* 05-树9 Huffman Codes.py
## [第六讲 图(上)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E5%9B%BE%EF%BC%88%E4%B8%8A%EF%BC%89)
了解什么是图,怎么存储、以及怎么遍历图。
### 课件内容:
* 6.1 什么是图
* 6.2 图的遍历
* 6.3 应用实例:拯救007
* 6.4 应用实例:六度空间
* 小白专场:如何建立图- C语言实现
### 题目内容:
* 06-图1 列出连通集
* 06-图2 Saving James Bond - Easy Version
* 06-图3 六度空间
## [第七讲 图(中)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E5%9B%BE%EF%BC%88%E4%B8%AD%EF%BC%89)
最短路径问题。
### 课件内容:
* 7.1 最短路径问题
* 小白专场:哈利•波特的考试- C语言实现
### 题目内容:
* 07-图4 哈利·波特的考试
* 07-图5 Saving James Bond - Hard Version
* 07-图6 旅游规划.py
## [第八讲 图(下)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E5%9B%BE%EF%BC%88%E4%B8%8B%EF%BC%89)
最小生成树问题,拓扑排序。
### 课件内容:
* 8.1 最小生成树问题
* 8.2 拓扑排序
* 图之习题选讲-旅游规划
### 题目内容:
* 08-图7 公路村村通
* 08-图8 How Long Does It Take
* 08-图9 关键活动
## [第九讲 排序(上)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%8E%92%E5%BA%8F%EF%BC%88%E4%B8%8A%EF%BC%89)
简单排序,希尔排序,堆排序,归并排序。
### 课件内容:
* 9.1 简单排序(冒泡、插入)
* 9.2 希尔排序
* 9.3 堆排序
* 9.4 归并排序(3小节共28:22)
* 习题选讲-Insert or Merge
### 题目内容:
* 09-排序1 排序
* 09-排序2 Insert or Merge
* 09-排序3 Insertion or Heap Sort
## [第十讲 排序(下)](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%8E%92%E5%BA%8F%EF%BC%88%E4%B8%8B%EF%BC%89)
快速排序,表排序,基数排序,排序算法的比较。
### 课件内容:
* 10.1 快速排序
* 10.2 表排序
* 10.3 基数排序
* 10.4 排序算法的比较
* 习题选讲-Sort with Swap(0,*)
### 题目内容:
* 10-排序4 统计工龄
* 10-排序5 PAT Judge
* 10-排序6 Sort with Swap(0, i)
## [第十一讲 散列查找](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/%E6%95%A3%E5%88%97%E6%9F%A5%E6%89%BE)
散列查找的核心:“直接计算”的函数怎么设计?有冲突怎么办?
### 课件内容:
* 11.1 散列表
* 11.2 散列函数的构造方法
* 11.3 冲突处理方法
* 11.4 散列表的性能分析
* 11.5 应用实例:词频统计
* 小白专场[陈越]:电话聊天狂人- C语言实现
* 习题选讲-Hashing - Hard Version
### 题目内容:
* 11-散列1 电话聊天狂人
* 11-散列2 Hashing
* 11-散列3 QQ帐户的申请与登陆
* 11-散列4 Hashing - Hard Version
## [第十二讲 KMP算法](https://github.com/CYBruce/DataStructure-Algorithm_ZJU/tree/week1/KMP%E7%AE%97%E6%B3%95)
### 课件内容:
* 串的模式匹配(KMP算法)
赵闪闪168
- 粉丝: 1726
- 资源: 6943
最新资源
- 玉米识别数据集 yolov8格式标注,5647张图,可精准识别玉米粒,正确识别率达到99.6%,用于识别检测玉米粒个数统计,或识别是否包含玉米
- 玉米识别数据集 COCO JSON格式标注,5647张图,可精准识别玉米粒,正确识别率达到99.6%,用于识别检测玉米粒个数统计,或识别是否包含玉米
- 考虑不同充电需求的电动汽车协调充电调度方法 代码复现,详细注释 1、提出了一种电动汽车(EV)的协调充电调度方法 2、在所提出的方法中估计了电动汽车用户充电需求的紧迫性 3、根据充电需求的紧迫性为
- 机械设计耐克皮衣自动整形平烫生产线sw17可编辑全套技术资料100%好用.zip
- APD,有源功率解耦,纹波抑制,波动抑制,直流电压纹波抑制,Buck型,Boost型,Buck-Boost型,独立型,复用型,双复用型
- 基于Kimi AI 实现发票内容识别
- chrome插件可以将任意大小的图片转换成128*128头像大小
- 机械设计爬杆机器人(sw17可编辑+cad)全套技术资料100%好用.zip
- MMC储能APF,MMC储能,MMC型APF,MMC储能型APF,模块化多电平变器储能,有源电力滤波器,同时具有储能和谐波补偿功能,不平衡负载,负序抑制,负序电流补偿,soc均衡控制, 参考文献
- STM32F4适配WINUSB2.0
- 玉米识别数据集 PASICAL VOC XML格式标注,5647张图,可精准识别玉米粒,正确识别率达到99.6%,用于识别检测玉米粒个数统计,或识别是否包含玉米
- 欧姆龙PLC程序欧姆龙案例欧姆龙标准程序 本产品适用于新手或者在校生 本程序包括有欧姆龙CP1H脉冲程序案例,威纶通触摸屏程序,word讲义 程序涉及方面广,适合新手入门学习,掌握了这些以后欧姆龙
- 单相MMC,单相MMC整流器,单相模块化多电平变器,直流电压波动抑制,桥臂电压均衡控制,模块电压均衡控制,载波移相调制
- 玉米识别数据集 yolo v7格式标注,5647张图,可精准识别玉米粒,正确识别率达到99.6%,用于识别检测玉米粒个数统计,或识别是否包含玉米
- 玉米识别数据集 yolov5格式标注,5647张图,可精准识别玉米粒,正确识别率达到99.6%,用于识别检测玉米粒个数统计,或识别是否包含玉米
- 基于Neo4j的大数据存储技术应用-单机部署、操作指南与图书管理实战案例
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈