摘要:
树是一种非常重要的数据结构,而二叉树是树的最基本的形式。像其他高级的数据结构,如 二叉查找树、平衡二叉树、AVL树、红黑树、splay 树(伸展树)、笛卡尔树、Treap、SBT树等都是以二叉树作为基础。 阅读全文
摘要:
笛卡尔树是一种同时满足二叉搜索树和堆的性质的数据结构。 可在一个数组上构造出来(时间复杂度可以达到O(n))。树中节点有几个属性, key(节点元素的大小)、index(节点在原数组中的索引)、left(左子节点)、right(右子节点)、parent(父节点)。性质树中的元素满足二叉搜索树性质,要... 阅读全文
摘要:
二叉堆是一种用类似二叉树的形式构建的具有堆的性质的数据结构。堆的性质: (以最大堆为例)堆顶元素为最大元素每个节点的元素值都大于其子女节点的元素值用数组实现堆,建堆的时间复杂度为 O(n)用堆进行排序,时间复杂度为 O(n*lgn)二叉堆实现:(c++)#define MAX_HEAP_SIZE 1... 阅读全文