面试题(二)

注:不喜勿喷//21.合并两个排序的链表 //输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增的,例如,链表1和 //链表2,则合并之后的升序链表如链表3所示,节点定义如下: struct ListNode { int _value; ListNode* _nex...

2017-09-07 11:37:07

阅读数 168

评论数 0

面试题(一)

注:不喜勿喷。 //1.输入一个链表的头结点,从尾到头反过来打印出每个结点的值;(单向链表) struct ListNode { int key; ListNode* next; }; //利用栈的先进后出的性质 void printReverList(ListNode* root...

2017-09-07 11:30:11

阅读数 219

评论数 0

图--最小生成树之解

**Graph:** (应用:地图,社交关系等) 图是一种非线性结构,由顶点集合以及顶点间的关系集合组成的一种数据结构; 1) 完全图:如果一个N个顶点组成的无向图中有N*(N-1)/2条边,则为无向完全图(即任意两个顶点间都有边相连) 2) 权重:边具有与之相关的数值,则称为权重; ...

2017-08-13 18:34:10

阅读数 180

评论数 0

排序算法汇总

排序:以下排序都是按从小到大的顺序编写的;1)直接插入排序: 时间复杂度O(n*n)//从小到大 //直接插入排序:取出一个比,比完再插入 void InsertSort(int* arr, size_t n) { assert(arr); for(size_t i = 0 ; ...

2017-08-13 00:43:12

阅读数 179

评论数 0

B-,B+,B*数小集合

**B-树:**常用于文件系统,数据库 外查找,是一种平衡的多叉树;(或者是空树) 性质: ① 根节点至少有两个孩子; ② 每个非根节点有[M/2,M]个孩子; ③ 每个非根节点有[M/2-1,M-1]个关键字,并且以升序排列; ④ Key[i]和key[i+1]之间的孩子节点的值介于...

2017-08-10 03:02:30

阅读数 163

评论数 0

HashTable,位图,BloomFilter分析(简单粗暴)

**HashTable:(散列表/哈希表)** 是根据关键字key而直接访问在内存存储位置的数据结构;它通过一个关键值的函数将所需的数据映射到表中的位置来访问数据,这个映射函数叫做散列函数,存放记录的数组叫做散列表; 构造哈希表的几种方法: 1)直接定址法:取关键字的某个线性函数为散列地址;...

2017-08-09 00:46:15

阅读数 422

评论数 0

探索红黑树中的秘密

**红黑树:** 二叉搜索树,它在每个节点中增加了一个颜色位,通过对任何一条从根到叶子节点的简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡;(不是绝对的平衡)性质: ①每个节点不是红色就是黑色的; ②根节点是黑色的; ③如果一个结点是红色的,则它左右两个子节...

2017-08-09 00:25:50

阅读数 123

评论数 0

AVLTree

AVL树:是一棵高度平衡的二叉搜索树;(搜索树+平衡因子 ) 性质: 1)左子树和右子树的高度之差的绝对值不超过1; 2)树中的每个左子树和右子树都是AVL树; 3)每个节点都有一个平衡因子,任一节点的平衡因子是-1,0,1;(每个节点的平衡因子=右子树高度-左子树高度) 时间复杂度是:...

2017-07-30 16:26:04

阅读数 161

评论数 0

搜索二叉树---之狸猫换太子的删除方法

搜索二叉树:性质: 1) 每个节点都有一个作为搜索依据的关键码(Key),所有节点的关键码都不同; 2) 左子树上所有节点的关键码(Key)都小于根节点的关键码(Key); 3) 右子树上所有节点的关键码(Key)都大于根节点的关键码(Key); 4) 左右子树都是二叉搜索树; ...

2017-07-29 13:41:12

阅读数 195

评论数 0

Huffman树---之文件压缩项目

HuffmanTree哈夫曼树:又称最优二叉树,是加权路径长度最短的二叉树; 如何建树,思想如下:以此类推最终将其构建成以下的样子:代码如下: #include"heap_review.h"//自己实现的堆模板类,见上篇堆文章 #include<queue>tem...

2017-07-29 01:43:51

阅读数 176

评论数 0

堆:堆数据结构是一种数组对象,它可以被视为一颗完全二叉树结构; 堆排序————————————————–》选择排序 堆结构的二叉存储: 最大堆:所有的父节点都比左右孩子大; 最小堆:所有的父节点都比左右孩子小;向上调整:不用关心父节点比当前子节点小的问题;(适用于已经把堆建好,插入新节点时...

2017-07-26 22:16:15

阅读数 139

评论数 0

线索化二叉树

**线索化:**能够对这颗树进行非递归遍历;能够给这棵树加上迭代器;线索化避免了这棵树遍历时的递归回旋问题,使用一个循环一口气就可以将这棵树访问完毕,可以这么理解,树的本身访问到了叶子节点就出现了断点问题,就要开始递归回旋判断,然而我们使用了线索化以后就相当于将断点问题解决,这就是一条可以直达终点...

2017-07-26 01:33:01

阅读数 149

评论数 0

二叉树

二叉树:是由N个结点组成的有限集合,该集合可为空(空二叉树),或者由一个根节点和两个互不相交的子节点组成。 二叉树的特点: 1) 最多有两棵子树,所以二叉树中不存在度大于2的结点; 2) 左子树和右子树是有序的,不可随意改变; 3) 五种基本形态: A. 空二叉树; B. 只...

2017-07-24 20:16:18

阅读数 89

评论数 0

栈和递归---解决迷宫问题

迷宫问题:走过的路设置为2,未走过的路设置0,墙设置为1; - 解决方法一:栈stack将每次你所走过的路都push进入栈里面,栈顶元素的坐标就是你所在的位置,取出你所在的位置然后判断当前位置上下左右四个方向是否有通路,如果没有就pop()顶层元素,然后再取出顶层元素(即退一步),然后接着判断其他...

2017-07-22 12:57:47

阅读数 192

评论数 0

模拟实现vector容器

vector:模型结构:以上表示3个指针,分别指向不同的位置; Vector的缺陷:前期增长代价太大,以1/2的模式开增,eg:1,2,3,4,6,6,9,9,9。。。 改进方法:使用reverse(x)直接开辟一个较大空间即可;Vector中两种增容方式: ① resize(x,y) ...

2017-07-21 21:09:19

阅读数 179

评论数 0

剖析容器List

List零个或者多个数据元素的有限序列;A. 是一个序列:元素之间有顺序,每一个元素都有前驱和后继;(这里的链表是一个带头节点的双向循环链表)B. 有限的; 综上所述:ListNode的模型如下: 迭代器:一种遍历容器的方式,只作遍历,修改的作用,不析构节点;分为:普通迭代器(可读可改),c...

2017-07-19 13:11:01

阅读数 88

评论数 0

c语言知识整理(二)

1.swtich():参数必须是整数,case _ 后面必须产生整数的表达式; (允许switch()嵌套switch();switch()中可以不要break,但是语句会从条件处一直执行到有break的位置处) 2.goto函数:跳转函数(一般用于处理错误,只能在本函数内部) 3.f...

2017-07-15 00:26:22

阅读数 115

评论数 0

c语言实现扫雷(非图形化界面)

游戏介绍: 扫雷是一款非常有规律而又简单智力的小游戏,不了解的一定不知道它里面出现的数字都是什么含义吧?这里小编给大家解释一下,其实那上面花花绿绿的数字不是空穴来风的,而是表示当前你所点击的位置上下左右的位置的周围中隐藏的雷的个数,好吧,这样一讲你一定不太明白,那就整图吧! 每次输入...

2017-07-14 23:19:06

阅读数 1416

评论数 0

java实现俄罗斯方块

- 俄罗斯方块设计思想 俄罗斯方块都从小玩到大吧,什么规则大家都知道了吧,以前感觉那玩意贼好玩,但是就是老赢不了,现在学会了自己写一个天天练!键盘操作: 左键:左移; 右键:右移; 上键:变换造型 下键:加速下掉(没毛病吧,没有继续整)任意一行的方块满格,这一行就...

2017-07-06 23:38:13

阅读数 439

评论数 0

java ----实现简单的21点纸牌游戏

- 游戏设计思路: 电脑和玩家的比拼:谁手中扑克牌的“点数和”首先达到21点为获胜方,或者在双方都叫停的情况下谁的“点数和”越接近21点且不大于21点为获胜方,凡是大于21点或者“点数和:小于对方的”点数和“的一方为输。 大小王的点数为0; J,Q,K的点数为10; 其余的点数都与...

2017-07-06 23:05:54

阅读数 10407

评论数 10

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