前言
慕课网刘宇波数据结构课程简记
课程:《玩转数据结构》
问题一:循环队列
一般认为,从队尾添加元素,从队首取出元素(FIFO)。
如下图:
空队列:front == tail
问题在于下面这种情况,tail
需要处理
处理方式:tail = (tail + 1) % capacity
达成目标,这时,注意到队列中有一个空位置,这是特意“浪费”一个位置用来标识队列满。
队列满条件:(tail + 1) % capacity = front
问题二:递归
代码示例:
1 | public class SumRecusion { |
链表和递归
问题示例:递归删除链表中某个元素值
代码示例:
1 | public class RecursionRemoveElement { |
微观分析
问题三:二叉树
构建一个二叉树:(4个类试验一下)
TreeNode Class节点:
1 | package playwithdatastructure.f_binary_search_tree.TreeDemo; |
BinaryTree Interface 接口
1 | package playwithdatastructure.f_binary_search_tree.TreeDemo; |
BinaryTreeImpl 二叉树实现
1 | package playwithdatastructure.f_binary_search_tree.TreeDemo; |
BinaryTreeTest 测试
1 | package playwithdatastructure.f_binary_search_tree.TreeDemo; |
给定一个二叉树,返回它的中序遍历。
1 | 输入: [1,null,2,3] |
迭代:
递归:
1 | class Solution { |