1.示例从9开始遍历
html
2.遍历过程当中栈和队列的变化过程
node
1.示例从5开始生成最小生成树
git
2.生成过程当中最小堆和生成树的变化过程
算法
1.深度优先遍历的算法表述以下:数组
1.访问初始结点v,并标记结点v为已访问。网络
2.查找结点v的第一个邻接结点w。数据结构
3.若w存在,则继续执行4,不然算法结束。学习
4.若w未被访问,对w进行深度优先遍历递归(即把w当作另外一个v,而后进行步骤123)。测试
5.查找结点v的w邻接结点的下一个邻接结点,转到步骤3。.net
2.遍历过程分析以下:
过程分析:
(1)、首先节点 1 进栈,节点1在栈顶;
(2)、而后节点1出栈,访问节点1,节点1的孩子节点3进栈,节点2进栈;
(3)、节点2在栈顶,而后节点2出栈,访问节点2
(4)、节点2的孩子节点5进栈,节点4进栈
(5)、节点4在栈顶,节点4出栈,访问节点4,
(6)、节点4左右孩子为空,而后节点5在栈顶,节点5出栈,访问节点5;
(7)、节点5左右孩子为空,而后节点3在站顶,节点3出栈,访问节点3;
(8)、节点3的孩子节点7进栈,节点6进栈
(9)、节点6在栈顶,节点6出栈,访问节点6;
(10)、节点6的孩子为空,这个时候节点7在栈顶,节点7出栈,访问节点7
(11)、节点7的左右孩子为空,此时栈为空,遍历结束。
(一)无向图邻接表
(二)有向图邻接表
(三)带权邻接表
(四)邻接表的数据结构
public void enqueue(T element) { LinearNode<T> node = new LinearNode<T>(element); if (isEmpty()) head = node; else tail = node; count++; }
修改后的enqueue方法以下:
public void enqueue(T element) { LinearNode<T> node = new LinearNode<T>(element); if (isEmpty()) head = node; else tail.setNext(node); tail = node; count++; }
修改后运行结果以下:
本周无错题!
努力,努力再努力吧!
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 4/4 | |
第二周 | 464/464 | 1/2 | 10/14 | 理解掌握了用数组和链表实现栈的方法 |
第三周 | 494/958 | 1/3 | 10/24 | 理解掌握了用数组和链表实现队列的方法 |
第四周 | 1629/2587 | 2/5 | 20/44 | 对用链表和数组实现列表进行了学习 |
第五周 | 856/3443 | 2/7 | 15/59 | 较为深刻的学习了查找和排序方法的实现 |
第六周 | 668/4111 | 1/8 | 20/79 | 学习了链式二叉树的实现 |
第七周 | 900/5011 | 1/9 | 15/99 | 对二叉查找树进行了较为深刻的学习 |
第八周 | 1378/6389 | 2/10 | 16/115 | 较为深刻的学习理解了堆 |
第九周 | 1700/8089 | 1/11 | 12/127 | 图的理解和实现 |
实际学习时间:12小时
改进状况:进一步提升学习效率,遇到问题努力去解决!