前言
慕课网刘宇波数据结构课程简记
课程:《玩转数据结构》
问题一:循环队列
一般认为,从队尾添加元素,从队首取出元素(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 { |