Skip to content

Latest commit

 

History

History

README.md

第二周学习总结

关于二叉树:

前中后遍历包括了递归和迭代,其实递归就是先递后归,和stack的先入后出是一样的,所以可以用stack来使用深度遍历,也就是迭代遍历。 ##关于堆:

  • 大根堆:根结点大于所有子节点
  • 小根堆:根节点小于所有子节点

java中的PriorityQuequ就是一个堆,默认是小根堆,可以重写comparator来实现大根堆。 heap主要解决的问题:最大K个元素、最小K个元素、丑数、中位数、堆排序O(nLogn)问题。

可以用二维数组进行保存,也可以用链表。二维数组结构清晰,方便计算,但是比较消耗内存,链表则相反,结构相对复杂,但是节约内存空间。

  • BFS:使用队列进行广度优先遍历,要用一个集合标记已经遍历的元素,不然会重复遍历
  • DFS:使用栈进行深度遍历。

感悟:

所有的数据结构都是基于最基本的数据结构进行扩展的,基本的数据结构:数组,链表。