AVL树的插入和检查

所以还是满足左路节点小于根节点根节点小于右路节点。 现对AVL的插入算法进行实现,方法是先将每个节点按二叉搜素树的方式进行插入,然后再根据AVL树的性质对插入的节点做相应的调整,使其满足AVL树的性质。 里面涉及到左旋,右旋,一级左右旋和右左旋。 左旋为: 右旋为: 左右旋: 右左...

2016-06-23 23:48:43

阅读数:281

评论数:0

二叉搜索树的增删查改

二叉搜索树注重增删查改,现在针对key/value形式进行研究。 现在对其进行实现,分别有插入,查找,删除,分别对这几个功能用递归和非递归实现。          其中删除操作比较特别,分为3种,分别是删除叶子节点,删除左为空或右为空的节点,第三种是删除左右子树都不为空的节点。最后一种删除最麻...

2016-06-17 23:43:35

阅读数:209

评论数:0

BitMap的原理及使用

位图:位图的原理就是用一个bit来标识一个数字是否存在,采用一个bit来存储一个数据,所以这样可以大大的节省空间。 例如一个int型有32bit,那么就可以用这32个bit来存储0~31这些整型数据,所以可以将1~31这些数据仅用1个bit来存储,这样节省了空间。 例如要存储3...

2016-06-08 20:41:13

阅读数:4477

评论数:1

基数排序

原理是按每一位进行对数组的排序,例如: 代码实现: int GetDigit(int * parr,int size)//获取最大数的位数 { int max = parr [0]; for (int i = 1; ...

2016-06-08 17:48:01

阅读数:201

评论数:0

冒泡排序的优化及最好最差情况

最开始学习的时候并没有对其进行深入的思考,现在对其进行总结,冒泡排序的思想也就不需要赘述。 最开我们会将数列进行n-1趟排序,每趟又进行一个循环的冒泡,如果是升序,我们就会将相邻的两个元素进行比较,将大的元素一直向后面“沉”,直到所有循环结束,这是数列也就被我们排序完成。 代码如如下: vo...

2016-06-05 20:31:22

阅读数:4506

评论数:1

直接选择排序和它的优化

直接选择排序是一种比较直观的排序,它是从一个无序的额数组中选择一个最小或最大的并将这个最大的放在数组的开始或末尾,现在进行代码的实现: /****/ if (parr [j] /********************/ 现在这个选择排序还有很大的优化空间,上述的方法的时间复杂度为O(n^2)...

2016-06-02 17:14:00

阅读数:1245

评论数:0

Linux下进度条

功能:模拟1到100的进度条,每次显示打印了百分之多少 首先要明白几个转义字符在不同平台的功能: \r : return 到当前行的最左边。 \n: newline 向下移动一行,并不移动左右。 Linux中\n表示回车+换行; Windows中\r\n表示回车+换行。 Mac中...

2016-06-02 11:08:45

阅读数:329

评论数:0

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