2018年5月12日
摘要:
算法原理请参考《算法导论》,简单描述下:就是所有节点(根节点除外)的最大深度和最小深度之间的差小于2。 代码实现,只贴出和红黑树不同的类成员函数实现,其余都是和红黑树一样。 类声明 和红黑树不同的类成员函数实现 avl_insert成员函数 avl_delete成员函数 avl_fixup成员函数,
阅读全文
posted @ 2018-05-12 16:21
dalgleish
阅读(166)
推荐(0)
2018年5月5日
摘要:
原理请参考《算法导论》 定义一个红黑树类 相关成员函数的实现 left_rotate成员函数,实现某节点的左旋转 right_rotate成员函数,实现某节点的右旋转 rb_insert成员函数,将某个key值插入到红黑树中,并修正让其满足红黑树的性质 rb_insert_fixup成员函数,接上面
阅读全文
posted @ 2018-05-05 15:20
dalgleish
阅读(179)
推荐(0)
2018年5月3日
摘要:
原理参考《算法导论》 注:代码设定,支持索引的位数最大是32位,当然可以修改让其支持64和32位的索引 首先定义一些常量(修改此处的常量,让其支持64位的索引) 然后定义一个基数树类 关于类成员实现 radix_mask成员负责根据所在树的层数,动态生成掩码。比如本例中使用18位的索引值,然后定义树
阅读全文
posted @ 2018-05-03 02:41
dalgleish
阅读(280)
推荐(0)
2018年4月23日
摘要:
原理参考《算法导论》 一、除法散列函数 根据描述实现算法,先取对应种子 关键算法实现 二、乘法散列函数 根据算法描述实现(应用时,slot大小是2^p,此函数无论如何映射,不会超出slot大小) 三、全域散列 原理是:假设数组有n个元素,通过除法散列算法中的hash_mod_seed函数取得一个素数
阅读全文
posted @ 2018-04-23 05:46
dalgleish
阅读(4031)
推荐(0)
2018年4月15日
摘要:
原理请参考《算法导论》 一、插入式排序算法实现: 二、递归实现分治,merge函数实现合并算法实现: 三、冒泡算法实现: 四、堆栈排序算法实现(实质上是数组和二叉树之间的映射): 定义数组: A[0]表示堆栈大小,即数组元素个数;所以数组中数据的下标是1开始到n 元素交换: 父子节点获取: 针对指定
阅读全文
posted @ 2018-04-15 13:45
dalgleish
阅读(251)
推荐(0)
摘要:
算法原理请参考:https://www.zhihu.com/question/23531676 先定义一些通用的函数,比如创建空幻方,删除幻方,打印幻方。 创建幻方 删除幻方 打印幻方 一、奇数幻方算法实现: 辅助函数(实现算法) 主函数(负责打印) 二、偶数幻方算法实现: 辅助函数(算法实现) 主
阅读全文
posted @ 2018-04-15 09:40
dalgleish
阅读(835)
推荐(0)
2018年4月14日
摘要:
寻找默认从1开始的N个素数 从给定的任何正整数iStart处起,寻找N个素数 寻找范围内iStart~iEnd的所有素数,并统计个数 所有代码均经过测试,结果正确。
阅读全文
posted @ 2018-04-14 16:00
dalgleish
阅读(211)
推荐(0)
摘要:
求最大公约数 求最大公约数d,并求出am+bn=d中a和b 所有代码均经过测试,结果正确。
阅读全文
posted @ 2018-04-14 15:55
dalgleish
阅读(199)
推荐(0)