常见数据结构和算法题

小顶堆、大顶堆

堆生成 调整算法

https://www.cnblogs.com/MOBIN/p/5374217.html

红黑树:是一种自平衡二叉查找树

B树

B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作。B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度。普遍运用在数据库文件系统

B 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点。

  • 根节点至少有两个子节点
  • 每个节点有M-1个key,并且以升序排列
  • 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
  • 其它节点至少有M/2个子节点

下图是一个M=4 阶的B树:

https://www.cnblogs.com/vincently/p/4526560.html

2-3-4树

二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。
二叉查找树每个节点只可以有一个key,而2-3-4树就是将节点的key的数量增加,可以有多个key,并且2-3-4树可以保持完美平衡。完美平衡就是每条从根节点到叶节点的路径的高度都是一样的。

2-3-4树的名字是根据子节点数来确定的。
我们看2-3-4树的key的种类。

  • 2-node: one key, two children.一个key值,两个儿子节点
  • 3-node: two keys, three children.两个key值,三个儿子节点
  • 4-node: three keys, four children.三个key值,四个儿子节点

其中2-node的左孩子就代表比key小,右孩子就代表比key大,
3-node的左孩子代表比第一个key小,中间的孩子代表值位于第一个key和第二个key之间,右孩子代表值大于第二个key
4-node同理

https://www.jianshu.com/p/37c845a5add6
 
 

Trie树(单词查找树、字典树)

快排

非递归实现快排

https://www.cnblogs.com/TenosDoIt/p/3665038.html

https://blog.csdn.net/ouyangjinbin/article/details/51079136

第k大的数(快排思想)

和最大连续子数组

积最大连接子数组

全排列问题

https://blog.csdn.net/jacky_chenjp/article/details/66477538

https://blog.csdn.net/summerxiachen/article/details/60579623

https://www.cnblogs.com/nowornever-L/p/6008954.html

给定二叉树前序、中序遍历结果。求后序遍历结果(递归)

链表是否有环  找环的入口点

原文地址:https://www.cnblogs.com/genggeng/p/9786735.html