![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 82
Java-我的世界-begin
程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。
展开
-
前/中/后缀表达式的转换
自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+c),形成二叉树转载 2016-05-11 09:27:50 · 4727 阅读 · 0 评论 -
Inotify: 高效、实时的Linux文件系统事件监控框架
在日常工作中,人们往往需要知道在某些文件(夹)上都有那些变化,比如:通知配置文件的改变跟踪某些关键的系统文件的变化监控某个分区磁盘的整体使用情况系统崩溃时进行自动清理自动触发备份进程向服务器上传文件结束时发出通知通常使用文件轮询的通知机制,但是这种机制只适用于经常改变的文件(因为它可以确保每过x秒就可以得到i/o),其他情况下都非常低效,并且有时候会丢失某些类型的变化,例如文件的修改时转载 2016-07-28 15:51:11 · 1872 阅读 · 0 评论 -
简单理解Socket
题外话前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的、C#的、甚至Node.js的转载 2016-07-27 15:03:45 · 438 阅读 · 0 评论 -
B 、B-、B+树总结
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关转载 2016-07-27 15:02:36 · 328 阅读 · 0 评论 -
数组中的逆序对
题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当ia[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。参考文献原创 2016-07-16 16:21:48 · 1148 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2016-07-27 09:49:56 · 1009 阅读 · 0 评论 -
多路复用epoll()总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:原创 2016-07-27 09:39:41 · 945 阅读 · 0 评论 -
多路复用select()总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用原创 2016-07-27 09:38:31 · 3691 阅读 · 0 评论 -
多路复用poll() 总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数原创 2016-07-27 09:37:29 · 1597 阅读 · 0 评论 -
TCP连接的建立与中止
TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编程的角度来说,UDP编程也要简单的多----UDP都不用考虑数据分片。书中用telnet登陆退出来解释TCP协议连接的建立和中止的过程,可以看到,TCP连接的建立可以简单的称为三次握手,而连接转载 2016-07-26 13:06:17 · 635 阅读 · 0 评论 -
丑数
面试题34:丑数题目:我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。方法一:遍历法使用遍历法求第k个丑数,从1开始遍历,如果是丑数则count++,直到count==k为止。那么如何判断丑数呢?根据丑数的定义,丑数只有2,3,5这三个因子,那么原创 2016-07-15 15:34:57 · 293 阅读 · 0 评论 -
字符串的排列组合问题
来源http://blog.csdn.net/wuzhekai1985问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题小;(3)子转载 2016-07-14 09:54:27 · 369 阅读 · 0 评论 -
算法、数据结构、排序
如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。 数据结构篇线性表顺序表的算法单链表的算法双链表的算法循环链表的算法栈队列原创 2016-06-14 15:59:11 · 433 阅读 · 0 评论 -
栈 基本操作
1使用标准库的栈和队列时,先包含相关的头文件#include#include定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plain copys.empty() 如果栈为空返回true,否则返回f原创 2016-05-06 09:58:33 · 769 阅读 · 0 评论 -
DDL DML
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.DDL是SQL语言的四大功能之一。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束DDL不需要commit.CR原创 2016-07-21 19:13:45 · 1862 阅读 · 0 评论