求树的深度和判断是否为平衡二叉树

首先如何求树的深度? 思想: 1.求树的深度首先要判断这棵树是否为空树,如果为空树就返回0。 2.定义俩个变量来记录左子树与右子树的大小。 3.比较左子树与右子树的大小,返回大的值 加一。 4.以上为递归遍历,约束条件为左子树或右子树是否为零。 实现代码: int TreeD...

2018-06-26 20:59:40

阅读数:26

评论数:0

数据结构思维导图

数据结构思维导图:

2018-04-25 21:29:28

阅读数:57

评论数:0

排序算法--7大排序问题解决方法

排序分为:1.插入排序2.希尔排序3.选择排序4.冒泡排序5.堆排序6.快速排序7.归并排序具有稳定性的排序是:插入排序,归并排序,冒泡排序快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;当n较大,则应采用时间复杂度为O(nlog2n)...

2018-03-12 18:46:11

阅读数:32

评论数:0

哈希——开放定址法

哈希函数:影响哈希冲突的原因:引起哈希冲突的一个原因可能是:哈希函数设计不够合理。    哈希函数设计原则: 哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0到m-1之间  哈希函数计算出来的地址能均匀分布在整个空间中  哈希函数应该比较简单解决哈希冲突两...

2018-03-01 16:00:57

阅读数:48

评论数:0

哈希——拉链法

首先写哈希——拉链法要知道哈希冲突。    哈希冲突: 对于两个数据元素的关键字 Ki  和 Kj  (i != j),有 Ki != J ,但有:   HashFun(Ki) == HashFun(Kj)   即不同关键字通过相同哈希哈数计算出相同的哈希地址,该种现象称为哈希冲突或哈希碰撞。把具...

2018-03-01 15:25:06

阅读数:337

评论数:0

堆的TopK问题,优先级序列,堆排序d

堆的概念:    如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元 素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:   Ki <= K2*i+1 且 Ki<= K2*i+2 (Ki >= ...

2018-02-26 20:34:28

阅读数:29

评论数:0

复杂链表的复制

复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 typedef struct SListNode { int data;//值 struct SLi...

2018-02-09 09:32:19

阅读数:38

评论数:0

空格替换 C语言

题目:实现一个函数,把字符串中的每个空格替换成%20.例如, 输入“We are happy”,则输出We%20are%20happy. 主要的思想: 思想:我们可以先遍历一次字符串。这样就可以统计出字符串中 的空格总数,每替换一个空格,长度增加2,因此替换以后字符串 的长度等于原来的长度加上2乘...

2018-01-30 13:25:54

阅读数:105

评论数:0

二维数组中查找

1.题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排列。请完成一个函数, 输入这样的一个二维数组和一个整数, 判断数组中是否该整数。 思想:首先选取数组中右上角的数字,如果该数字等于要查找的数字,则查找 过程结束;如果该数字大于要查找...

2018-01-28 09:50:34

阅读数:48

评论数:0

实现二分查找算法的递归及非递归

什么是二分法算法: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位...

2017-12-08 16:28:37

阅读数:49

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭