<audio id="audio" title="春节7天练 | Day 6：图" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/6b/31/6bfd320127c01a9c378a12fe7d870631.mp3"></audio>

你好，我是王争。初六好！

为了帮你巩固所学，真正掌握数据结构和算法，我整理了数据结构和算法中，必知必会的30个代码实现，分7天发布出来，供你复习巩固所用。今天是第六篇。

和之前一样，你可以花一点时间，来手写这些必知必会的代码。写完之后，你可以根据结果，回到相应章节，有针对性地进行复习。做到这些，相信你会有不一样的收获。

## 关于图的几个必知必会的代码实现

### 图

<li>
实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
</li>
<li>
实现图的深度优先搜索、广度优先搜索
</li>
<li>
实现Dijkstra算法、A*算法
</li>
<li>
实现拓扑排序的Kahn算法、DFS算法
</li>

## 对应的LeetCode练习题（@Smallfly 整理）

- Number of Islands（岛屿的个数）

英文版：[https://leetcode.com/problems/number-of-islands/description/](https://leetcode.com/problems/number-of-islands/description/)

中文版：[https://leetcode-cn.com/problems/number-of-islands/description/](https://leetcode-cn.com/problems/number-of-islands/description/)

- Valid Sudoku（有效的数独）

英文版：[https://leetcode.com/problems/valid-sudoku/](https://leetcode.com/problems/valid-sudoku/)

中文版：[https://leetcode-cn.com/problems/valid-sudoku/](https://leetcode-cn.com/problems/valid-sudoku/)

做完题目之后，你可以点击“请朋友读”，把测试题分享给你的朋友，说不定就帮他解决了一个难题。

祝你取得好成绩！明天见！
