数组:如果需要经常进行循环和查找使用
例题:242
链表:如果需要经常的进行添加或者删除操作使用
使用技巧:
1.使用快慢指针(有时候需要用到三个指针)
2.构建一个虚假的链表头
栈:后进先出
例题:20,739
队列:先进先出
特点:双指针,对数据前后同时操作
双端队列:利用双链表进行操作
特点:实现一个长度动态变化的窗口
树:遍历:
前序遍历:先遍历树根,在遍历左子树,最后遍历右子树
中序遍历:先左子树,再根节点,最后右子树
后序遍历:先左子树,再右子树,最后根
高级数据结构:
1.优先队列
2.图
3.前缀树
4.线段树和树状数组