linux
文章平均质量分 78
fantasy_linux
这个作者很懒,什么都没留下…
展开
-
数据结构之二叉搜索树
一颗二叉搜索树是以一颗二叉树组织的,这样一颗可以使用一个链表数据结构来表示,其中每个节点都是一个对象,除了key之外,每个节点还包含属性left、right和p,它们分别指向节点的左孩子、右孩子和双亲。如果某个孩子结点和父节点不存在,则相应属性的值为NULL,根节点是树中唯一一个父指针为NULL的节点。 6原创 2016-02-29 19:36:16 · 332 阅读 · 0 评论 -
redhat 网络配置
对于一个初学linux的人来说,一般对不会直接拿真机做各种实验,那么都会在真机上装一个用来做测试的虚拟机,那么就会出现一个比较重要的问题就是虚拟机与真机之间的通信,比如你会将真机的一些安装包用scp命令远程拷贝到虚拟机上,那么就需要配置你真机和虚拟机的网络,如果想要实现远程拷贝,那么就要用到桥接技术。 物理机为redhat 7.0 虚拟机也是redhat 7.0。 (一原创 2016-03-15 13:15:41 · 622 阅读 · 0 评论 -
网络编程之僵尸进程
在讨论之前先给出一段代码,其中存在一个很大的隐患,就是僵尸进程!!!!可用top命令进行查看,如下图所示: 由上图可看出,存在1个zombie(僵尸进程)!!! 下面就给出具体的实现: config.h: #include #include #include #include #include #include #include #in原创 2016-03-14 19:03:51 · 687 阅读 · 0 评论 -
redis基本数据结构之压缩列表
压缩列表(ziplist)时列表键和哈希键的底层实现之一。压缩列表时redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构。一个压缩列表可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值。 接下来给大家展示以下压缩列表的具体结构: 在表中列出了空的压缩列表和非空的压缩列表的具体是如何存储的。原创 2016-03-24 19:03:51 · 548 阅读 · 0 评论 -
算法导论之哈夫曼编码
今天和大家一起讨论Haffman编码,哈夫曼编码是基于哈夫曼树,也可以被称为最有二叉树,哈夫曼编码可以有效的压缩数据,通常可以节省20%~90%,具体的压缩率依赖于数据的特性。首先给大家介绍一下什么是最优二叉树;在介绍什么是最有二叉树之前,先说明两个概念 , i>叶子节点的路径长度:从根到叶子节点的边的个数; ii>叶子节点的带权路径长度(WPL):叶子节点的权值 * 路径原创 2016-02-29 18:07:00 · 969 阅读 · 0 评论 -
unix网络编程基本编程
今天和大家分享一些基本套接口的编程函数,为帮助大家更好的理解connect、accept和close函数并使用netstat调试TCP应用程序,我们需要了解如何建立和终止TCP连接以及TCP的状态转换图。这样能够帮助我们编写网络程序的例子。 《一》三次握手: 下述步骤建立一个TCP连接: 1.服务器必须准备好接受外来的连接。这通原创 2016-03-12 18:49:54 · 2137 阅读 · 0 评论 -
各种排序的排序思想和实现
今天主要和大家讨论九大排序算法,包括冒泡排序、插入排序、选择排序、shell排序、归并排序、快速排序、计数排序、基数排序、堆排序。通过和大家的讨论,相信对大家的在今后的学习和面试肯定会有很大的帮助。下面分别来说明各种排序的排序的思想和其实现。 (1)冒泡排序: 排序思想:设数组a[0..n-1],令i = 0; j从原创 2016-02-27 20:00:27 · 856 阅读 · 0 评论 -
redis之整数集合的实现源码分析
整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis就会使用整数集合作为集合键的底层实现。整数集合(intset)是redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t、int64_t的整数值,并且保证集合中不会出现重复元素。 我们首先来看redis对于intset.h的实现: in原创 2016-03-22 19:51:51 · 540 阅读 · 0 评论 -
ctags看源码----你值得拥有
ctags简介:(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。这是来自百度百科对于ctags的定义。 (1)首先我们来看如何安装ctags: 如果你是redh原创 2016-03-20 21:21:01 · 992 阅读 · 0 评论 -
redis列表键的底层实现之链表
最近在啃redis的源码,看到列表键的底层实现之一就是链表。当一个链表键包含了数据比较多的元素,又或者列表中包含的元素都是比较长的字符串,redis就会使用链表作为列表键的底层实现。除了链表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,redis服务器本身也使用了链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区,在后续都会和大家解析源码,接下来就给大家解析一下redis源原创 2016-03-17 21:12:27 · 578 阅读 · 0 评论 -
算法导论之红黑树
红黑树是一颗二叉搜索树,它在每个节点增加了一个存储位来表示节点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子的简单路径上各个节点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是近似平衡的。 树中每个节点包含5个属性:color、key、left、right和p。如果一个节点没有子节点或父节点,则该节点相应指针属性的值为NULL。我们可以把这些NULL视原创 2016-03-02 15:13:24 · 437 阅读 · 0 评论 -
算法导论值快速排序
今天和大家一起讨论快速排序,对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为o(n * n)的排序算法。虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好;它的期望时间复杂度为o(n lgn),而且o(n lgn)中隐含的常数因子非常小。另外,它还能进行原址排序,甚至在虚存环境中也能很好的工作。 快速排序的描述:原创 2016-02-17 15:40:09 · 295 阅读 · 0 评论