
树
zsd12345zsd
这个作者很懒,什么都没留下…
展开
-
二叉树叶子节点数
原理如果没有左孩子,也没有右孩子, 那么就是叶子节点实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { int data; struct BitNode *lchild, *rchild;} BitNode, *BitTree;void CreateTree(BitTree *...原创 2019-11-28 13:24:11 · 262 阅读 · 0 评论 -
二叉树第K层节点数
原理以根节点为起点的第K层,即为根节点子节点的第K-1 层,为根节点子节点的第K-1-1层,所以如果最后为1则说明当前为第K层的节点实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { int data; struct BitNode *lchild, *rchild;} BitNo...原创 2019-11-28 13:10:03 · 2143 阅读 · 0 评论 -
二叉树的层数
原理通过递归分别计算节点的左右最大层数, 加上根节点就是二叉树的总层树实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;int sum = 0;in...原创 2019-11-27 23:59:40 · 3970 阅读 · 0 评论 -
求二叉树中的节点个数
原理维护一个数量的变脸值,通过遍历二叉树, 对这个变量进行累加。代码#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;int sum = 0;void ...原创 2019-11-27 23:46:58 · 232 阅读 · 0 评论 -
二叉树的遍历
二叉树遍历前序遍历中序遍历后续遍历代码实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;// void createBiTree(BiT...原创 2019-11-27 23:39:19 · 194 阅读 · 0 评论 -
求一个数列中第K大的数
想法如果求K大的数, 我们可以通过维护一个数量为K的的小顶堆,通过不断维护这个小顶堆来计算出数列中前K个数,而小顶堆中,堆顶为最小的数,即为第K大的数代码实现c语言实现;求数列中第3大的数字#include <stdio.h>int h[101]; //存储对列数据int n; //存储队列大小int k = 3; //k大小int k_num[4];void...原创 2019-11-27 00:41:40 · 413 阅读 · 0 评论 -
优先队列
什么是优先队列支持插入和寻找最大(最小)值的数据结构称为优先队列为什么使用堆来实现什么是堆:一颗完全二叉树了解概念(二叉树,完全二叉树, 满二叉树)因为使用队列来实现, 那么插入一个数据, 复杂度是O(n), 找到最大(最小值)的复杂度也为O(n); 而使用堆, 则插入一个数据的复杂度为logN, 找到一个最值的复杂度也为logN; 所以堆排序的复杂度是N*logN, 是一种比较好的排序...原创 2019-11-26 23:36:27 · 121 阅读 · 0 评论