
数据结构与算法
文章平均质量分 57
小木荣
这个人在摆烂。。。
展开
-
红黑树非详解
红黑树性质1.每个节点要么是红色,要么是黑色2.根节点必须是黑色3.红色节点不能连续(父子不能同红)4.每个叶结点(包括null节点)都是黑的5.从任意节点出发,到其所有叶子节点的简单路径上都包含相同数目的黑色节点(重点)浅谈:1.插入节点:新插入节点是红色的(–性质2–若是根节点就变黑),再插一个就是双红(–性质3–此时需要旋转或变色)。2.旋转:树的旋转本质是节点的指向发生变化,代码+画图思路就十分清晰3.红黑树可视化:在线画红黑树,用来判断自己的程序是否正确ps: 代码是我从gi原创 2022-03-17 19:40:16 · 801 阅读 · 0 评论 -
数据结构--八大排序
时间、空间复杂度比较一、插入排序直接插入排序:void InsertSort(int K[], int n){ for (int i = 1; i < n; i++) { if (K[i] < K[i - 1]) { //K[i-1]之前的数据有序 int j = i - 1; int x = K[i]; //当前数据 while (j >= 0 && x < K[j]) { //查找在有序表的插入位置 K[j + 1] =原创 2021-12-02 22:16:58 · 682 阅读 · 0 评论 -
利用哈希技术统计C源程序关键字出现频度
一:题目1、题目内容: 利用Hash技术统计某个C源程序中的关键字出现的频度2、基本要求: 扫描一个C源程序,用Hash表存储该程序中出现的关键字,并统计该程序中的关键字出现的频度。用线性探测法解决Hash冲突。设Hash函数为: Hash(key)[(key的第一个字母序号)*100+(key的最后一个字母序号)] MOD 41二:设计(流程图)全部代码(运行环境:vs2019)#include<stdio.h>#include<stdlib.h>#in原创 2021-12-02 22:16:30 · 2719 阅读 · 8 评论 -
平衡二叉树(ALV树)
一、AVL树简介 AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。 平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。 平衡因子:将二叉树上某个节点的左子树高度减去右子树高度的值称为该节点的平衡因子BF原创 2021-11-28 16:53:17 · 1643 阅读 · 1 评论 -
图的遍历(深度优先与广度优先)
深度优先遍历简称DFS(Depth First Search),广度优先遍历简称BFS(Breadth First Search) 深度优先遍历一:遍历展示创建的图如下:数字代表创建顺序,从a点进行深度优先遍历:过程:1.遍历a点2. a点找到最后创建的边 5(a到c),到达c点3. c点找到最后创建的边 3(c到d),到达d点(访问过的点不再访问)4. d点找到b点,到达b点5. b点找不到未遍历的点,结束遍历结果:a->c->d->b二:运行原创 2021-11-20 19:18:42 · 1839 阅读 · 1 评论 -
图的创建(邻接矩阵和邻接表)
编译环境:vs2019 邻接矩阵一:基本概念 邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。设G= (V,E)是一个图,其中V= {v1,v2,…,vn} 。G的邻接矩阵是一个具有下列性质的n阶方阵:①对 无向图 而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0, 有向图 则不一定如此。. ②在无向图中,任一顶点i的度为第i列(或第i行)所有非零元素的个数,在有向图中顶点i的出度为第i行所有非零元素的个数,而入度原创 2021-11-20 18:06:37 · 2796 阅读 · 1 评论 -
二叉排序树
编译环境:vs2019递归与非递归算法:指针调用:#include<stdio.h>#include<stdlib.h>#define M 50typedef struct Tree { int data; struct Tree* lchild; struct Tree* rchild;}Tree, * BitTree;void INORDER(BitTree T) { /* 递归中序: if (T == NULL) { return; } IN原创 2021-11-14 16:35:55 · 1123 阅读 · 0 评论 -
二叉树基本操作
二叉树的创建、递归与非递归遍历、层次遍历、销毁。(运行环境:vs2019)实验结果:完成全码:#include<stdio.h>#include<stdlib.h>#define M 50typedef struct Tree { int data; struct Tree* LChild; struct Tree* RChild;}Tree, * BitTree;BitTree createTree() { int data, t; scanf_s原创 2021-11-10 11:20:27 · 506 阅读 · 0 评论