
数据结构
文章平均质量分 80
秘境之眼
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
数据结构-树
一、树1.1 树是一种n(n>=0)个节点的有序集合,在任意非空树中,有且仅有一个根节点。通常,凡是分等级的方案都可以用具有严格层次关系的树结构来描述。1.2 节点的度:一个节点的子树的个数记为该节点的度。内部节点是度不为0的节点;1.3 树的高度:一棵树的最大层数记为树的高度。1.4 有序(无序)树:若树中节点的各个子树看成是从左到右的具有次序的,即不能交换,则该树为有序树,否则称为无序树。二、二叉树2.1 二叉树与树之间最主要的区别是:二叉树中节点的子树要区分左子树和右子树,即使在节点原创 2021-01-16 10:20:56 · 282 阅读 · 0 评论 -
数据结构-线性结构
一.线性结构1.顺序线性表1.1 线性结构是一种基本的数据结构,具有单一前驱和后继的数据关系描述。1.2 线性表的存储结构分为顺序存储和链式存储。1.3 顺序线性表的元素间的逻辑关系无需占用额外的空间来存储。1.4 一般地,以LOC(a1a_1a1)表示线性表中第一个元素的存储位置,在顺序存储结构中,第i个元素aia_iai的存储位置为LOC(ai)=LOC(a1)+(i−1)∗LLOC(a_i) = LOC(a_1) + (i-1)*LLOC(ai)=LOC(a1)+(i−1)∗L原创 2020-10-03 14:31:02 · 1405 阅读 · 0 评论 -
排序算法以及基本数据结构
原创 2019-12-08 19:16:04 · 213 阅读 · 0 评论 -
堆
堆堆是一种二叉树,完全二叉树(结点依次排列),不完全二叉树(结点间有间隔); 使用数组 大顶堆,小顶堆 二叉树可以和数组对应转换,根据情况具体选择。 堆的操作:插入,删除,堆都可以满足堆的定义。 插入新节点->向上渗透,将一个元素插到最后,然后将其向上渗透,进行调整。 删除根节点->向下渗透,删除根节点,将最后一个元素放到很节点,然后将其向下渗透,进行调整。 子节...原创 2019-10-16 18:51:41 · 258 阅读 · 0 评论 -
swap交换算法
交换算法(swap)void swap(int x,int y) void swap(int *px,int *py) #define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(x)) void swap(int &x,int &y) template<class T> void swap(T&x,T&y)#i...原创 2019-09-30 11:31:28 · 927 阅读 · 0 评论 -
排序算法-查找算法
排序算法冒泡排序从左向右扫描数据,选着最大的数据。 要点:比较相邻的两个数,如果左边的数大于右边的数就进行交换。template<class T> void BubbleSort(T *array, const int length){ for (int i = 0; i <length-1; i++) {...原创 2019-09-30 18:42:19 · 227 阅读 · 0 评论 -
平衡二叉查找树
红黑树-高级的二叉查找树平衡树和非平衡树 红黑树特征:结点都有颜色,插入和删除结点时要遵循红黑规则; 红黑规则 每一个结点不是红色就是黑色; 跟总是黑色的; 如果结点时红色的,则它的子节点必须是黑色的; 从根到叶子结点的每条路径,必须包含相同的黑色结点。 修正方法 改变结点颜色 旋转 C++函数库包含的红黑树 #include<set> #i...原创 2021-07-13 21:23:10 · 128 阅读 · 0 评论