![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 57
shelley_404
靡不有初,鲜克有终。
展开
-
二叉树的基本操作
目录1.层次建立二叉树1.1 结点已知1.2 结点未知2.先序遍历3.中序遍历4.后序遍历1.层次建立二叉树1.1 结点已知借助一个索引数组。① 申请空间;② 双指针法:i指向要修改指针域的结点;j指向要被放入的结点。void buildTree(pTreeNode_t arr[], char c[]) { for (int i = 0; i < N; ++i) { arr[i] = (pTreeNode_t)calloc(1, size原创 2021-09-12 13:58:25 · 88 阅读 · 0 评论 -
八个排序算法
目录1.冒泡排序2.选择排序3.插入排序4.希尔排序5.快速排序6.堆排序7.归并排序8.计数排序1.冒泡排序思路:从N,N-1,···,2个数中找到最大值,放在当前数组的末尾。优化版:当一趟比较中没有发生任何交换时,说明数组已经有序。void bubbleSort(int arr[]) { int cnt = 0; for (int i = N; i > 0; --i) { for (int j = 0; j < i -原创 2021-09-12 19:39:09 · 296 阅读 · 0 评论 -
两个查找算法
1.二分查找(折半查找)T(n) = O(nlogn)void binarySearch(int arr[], int left, int right, int searchNum) { int mid; while (left <= right) { mid = (left + right) / 2; if (arr[mid]== searchNum) { printf("%d is in the array.\n", searchNum); return; }原创 2021-09-12 20:16:41 · 59 阅读 · 0 评论 -
红黑树总结
目录1. 红黑树的基本特征2. 红黑树的插入3. 红黑树的删除1. 红黑树的基本特征① 结点必须是红色或黑色;② 根节点必须为黑;③ 空叶子为黑;④ 红色结点的孩子必然是黑(即从根结点出发到空叶子的任意路径上不存在连续的红色结点);⑤ 从根出发到所有空叶子的所有简单路径上黑色结点数必须相等。2. 红黑树的插入情况一:插入位置为根结点---直接插入;情况二:插入位置不是根结点,且双亲节点为黑---直接插入;情况三:插入位置不是根结点,且双亲结点为红,叔叔结点为红-原创 2021-09-12 20:35:49 · 70 阅读 · 0 评论