- 博客(16)
- 收藏
- 关注
原创 手撕AVL树——四种旋转
手撕AVL树旋转对二叉搜索树进行中序遍历可以得到有序的序列AVL树是一颗严格平衡搜索树通过控制左右子树的高度差,左右子树的高度之差的绝对值超过(-1/0/1)我这里用的是三叉链,用平衡因子控制左右之差三叉链可以更方便操作和理解,也是有弊的,每个结点在32为
2022-05-02 13:39:37
592
3
原创 二叉树前,中,后序的非递归实现
力扣题的链接在下面前序链接中序链接后序链接二叉树的前,中,序用递归很简单我这里就不写了,主要来看非递归的实现前序的非递归思路:用栈的后进先出来控制结点,还是比较简单的/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullp
2022-04-28 22:41:13
500
原创 数据在内存中的存储 - c
目录C语言数据类型内置类型类型的意义类型的基本归类整形家族浮点数家族构造类型指针类型空类型数据在内存中的存储整形在内存中的存储符号位 原码 反码 补码原码反码补码补码转换原码大小端大小字节序大端存储模式小端存储模式为什么有大小端浮点数的数据存储浮点数的存储规则指数EC语言数据类型内置类型char字符数据类型short短整形int整形long长整型long long更长的整形float单精度浮点数double双精度浮点数类型的意义不同
2022-03-03 13:32:11
282
12
原创 直接插入排序&希尔排序纯C实现
直接插入排序&希尔排序当作自己的笔记来写直接插入排序&希尔排序直接插入排序希尔排序性能测试直接插入排序思路:直接插入排序是一种简单的插入排序法,其基本思想是:==把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 ==。实际中我们玩扑克牌时,就用了插入排序的思想,void InsertSort(int* a, int n){ for (int i = 0; i < n - 1; ++i) { int
2022-02-27 16:27:15
746
1
原创 两分钟学会二分查找
在有序数组中用二分查找二分查找的前提是在有序的数组下进行当我们要在有序数组下查找,我们就可以选择二分二分查找用函数实现部分int Seek(int arr[], int k, int sz){ //k是要查找的数 int left = 0;//左下标 int right = sz - 1;//右下标 while (left <= right)//判断条件 { int mid = left + (right - left) / 2;//中间下标 if (arr[mid]
2022-02-08 09:43:27
533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人