摘要: 红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。 通过对任何一条从根到叶子节点简单路径上的颜色来约束树的高度,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树是满足下面红黑性质的二叉搜索树: 1. 每个节点,不是红色就是黑色的 2. 阅读全文
posted @ 2016-07-08 16:50 ProLyn 阅读(3164) 评论(0) 推荐(2) 编辑
摘要: AVL树是高度平衡的二叉搜索树,按照二叉搜索树(Binary Search Tree)的性质,AVL首先要满足: 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。 AVL树的性质: 阅读全文
posted @ 2016-07-07 16:22 ProLyn 阅读(7807) 评论(2) 推荐(3) 编辑
摘要: 问:运行Test 函数会有什么样的结果? 由于数组p是栈上数据,返回数组名就是返回栈内存即动态数据区的地址,函数结束会被释放,所以返回的地址也就指向了不确定的位置了,str就成了乱码! 如果改成: 就可以正确的输出了,原因是返回字符串常量的指针,返回的就是静态数据区(常量区)的地址,可以正确打印! 阅读全文
posted @ 2016-06-28 11:07 ProLyn 阅读(1168) 评论(0) 推荐(1) 编辑
摘要: 用例: 将一组数据从大到小进行排列 10, 16, 18, 12, 11, 13, 15, 17, 14, 19 size=10 步骤1.根据数组初始化堆中的数据(无序堆) 步骤2.从最后一个根节点( 下标为(size-1-1)/2 )开始往第一个根节点遍历,依次将每个最小子树排好序,建造一个小堆: 阅读全文
posted @ 2016-06-24 22:17 ProLyn 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 定义: 一棵m阶B-树是拥有以下性质的多路查找树: 1、非叶子结点的根结点至少拥有两棵子树; 2、每一个非根且非叶子的结点含有k-1个关键字以及k个子树,其中⌈m/2⌉≤k≤m; 3、每一个叶子结点都具有k-1个关键字,其中⌈m/2⌉≤k≤m; 4、key[i]和key[i+1]之间的孩子节点的值介 阅读全文
posted @ 2016-06-24 11:50 ProLyn 阅读(3271) 评论(1) 推荐(2) 编辑
摘要: 并查集(UnionSet)是一种树型的数据结构,用于处理一些不相交集合)的合并及查询问题。常常在使用中以森林来表示。 并查集实现了将N个不同的元素分成一组不相交的集合。开始时,每个元素就是一个集合,然后按规律将两个集合进行合并。 比如:现在有 0,1,2,3,4,5,6,7,8,9 总共10个元素。 阅读全文
posted @ 2016-06-24 10:06 ProLyn 阅读(1751) 评论(2) 推荐(1) 编辑
摘要: 语句格式: for(表达式1;表达式2;表达式3) { 循环体 } 表达式1:赋值表达式,用来给控制变量赋初值。(只执行一次) 表达式2:逻辑表达式,是循环的控制条件,用来判断控制变量是否符合循环条件,是则进入循环体,否则跳出循环。 表达式3:赋值表达式,用来对控制变量进行增量或减量操作。 for循 阅读全文
posted @ 2016-06-21 23:48 ProLyn 阅读(4541) 评论(1) 推荐(0) 编辑
摘要: 函数原型: 头文件: 引入: 字符串由'\0'结尾,所以字符串内部不能包含任何'\0'字符('\0'的ASCII值为0),否则我们将读不到'\0'后的字符内容。但是,非字符串内部包含零值的情况并不罕见,我们无法利于其它字符串函数来处理这类数据。所以,我们要引入内存操作的函数来处理。 memcpy m 阅读全文
posted @ 2016-06-17 22:30 ProLyn 阅读(781) 评论(0) 推荐(0) 编辑
摘要: 这些常用的字符串操作函数都是包在string.h头文件中。 分享此图,方便大家记忆 <(^-^)> 选中图片点击右键,在新标签页中打开图片会更清晰 阅读全文
posted @ 2016-06-17 21:56 ProLyn 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 在OS中调度的是实质是一种资源分配。 调度算法是指:根据系统资源分配策略所规定的资源分配算法。对于不同的系统或系统目标,通常采用不同的调度算法。 1.先来先服务和短作业(进程)优先调度算法 1)先来先服务调度算法 先来先服务(FCFS)调度算法是一种最 简单的调度算法,该算法既可用于作业调度,也可用 阅读全文
posted @ 2016-06-16 14:40 ProLyn 阅读(9404) 评论(1) 推荐(2) 编辑
摘要: 进程控制块,英文名(Processing Control Block),简称 PCB 。 进程控制块是系统为了管理进程设置的一个专门的数据结构,主要表示进程状态。 每一个进程都对应一个PCB来维护进程相关的信息; 在Linux中,PCB结构为task_struct; task_struct是Linu 阅读全文
posted @ 2016-06-16 13:41 ProLyn 阅读(4585) 评论(0) 推荐(2) 编辑
摘要: 1. 登录并进入你常用的用户名下,查看其主目录 命令: # su xxx $ cd xxx $ ls -a 2.查看并建立目录和文件 首先看你的主目录~/ 下是否有.vimrc文件,没有就输入指令 $ touch .vimrc 新建该文件 在主目录下新建目录 .vim,并进入.vim目录,建立plu 阅读全文
posted @ 2016-05-27 20:16 ProLyn 阅读(3618) 评论(0) 推荐(0) 编辑
摘要: 1.利用命令模式 捕获整个屏幕 : $ gnome-screenshot 截完屏之后我们可以设置自定义图片存储位置,如图: 捕获当前终端Terminal : $ gnome-screenshot -w 捕获自定义区域 :$ gnome-screenshot -a 利用-B参数可以去除终端窗口的名称状 阅读全文
posted @ 2016-05-24 21:36 ProLyn 阅读(4329) 评论(0) 推荐(0) 编辑
摘要: Linux下几个常见的文件查找命令: which 查看可执行文件的位置 whereis 寻找特定文件,查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 通常情况下find命令并不是很常用,大家都优先使用whereis和locate命令来查找,因为whereis 阅读全文
posted @ 2016-05-22 15:06 ProLyn 阅读(5222) 评论(0) 推荐(0) 编辑
摘要: 代码段(.text),也称文本段(Text Segment),存放着程序的机器码和只读数据,可执行指令就是从这里取得的。如果可能,系统会安排好相同程序的多个运行实体共享这些实例代码。这个段在内存中一般被标记为只读,任何对该区的写操作都会导致段错误(Segmentation Fault)。 数据段,包 阅读全文
posted @ 2016-04-30 19:51 ProLyn 阅读(13618) 评论(1) 推荐(5) 编辑