KMPc++实现

#include #include #include using namespace std; void getNextArray(char* str2,int* next) { int len = strlen(str2); next[0] = -1; next[1...

2017-11-22 16:01:53

阅读数 133

评论数 0

TCP异常终止(reset报文)

TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成,但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的四次挥手来释放连接,如果此时不通过其他的方式来释放TCP连接的话...

2017-11-22 12:21:35

阅读数 237

评论数 0

对于一个n位正整数a,去掉其中任意k(k<=n)个数字后,剩下的数字按原次序排列可以组成一个新的正整数。设计一个删数算法,使得剩下的数字组成的正整数最小。例如,a=13243221,k=5,输出:12

对于一个n位正整数a,去掉其中任意k(k 分析 一个n位数,删去k位后,也就是剩下一个 n-k位 数,那么这个数要最小,我们就要保证我们我们得出的数是所有删除后得到的数的最小值。那么怎么保证呢? 问题转换一下,如果最后就剩下一位,那么无意结果就是这些数字的最小值; 如果最后剩下两...

2017-10-30 22:07:30

阅读数 1075

评论数 0

c/c++:内存泄露和野指针的概念

内存泄漏  用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,不能被任何程序再次使用,直到程序结束。即所谓内存泄漏。    注意:内存泄漏是指堆内存的泄漏。  简单的说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长...

2017-10-28 15:28:56

阅读数 89

评论数 0

I/O复用select、poll、epoll

I/O复用使得程序能够同时监听多个文件描述符,对于提高程序性能至关重要。I/O复用不仅仅在网络程序中使用,但是我接触到的例子中,TCP网络编程那块使用I/O复用比较多,例如,TCP服务器同时处理监听socket和连接socket. 在了解I/O复用之前,我们需要先了解几个概念。 1,同步I/O...

2017-10-26 13:16:56

阅读数 131

评论数 0

Linux下/proc目录

1. /proc目录 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 用户和应用程序可以通过proc得到系统的...

2017-10-26 13:16:03

阅读数 109

评论数 0

指针和引用的区别

指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如: int a=1;int *p=&a; int a=1;int &b=a; ...

2017-10-25 20:17:36

阅读数 148

评论数 0

TCP拥塞控制机制

一.拥塞的发生与其不可避免    拥塞发生的主要原因:在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联网的设计机制导致其缺乏“接纳控制”能力,因此在网络资源不足时不能限制用户数量,而只能靠降低服务质量来继续为用户服务,也就是“尽力而...

2017-10-24 17:53:47

阅读数 67

评论数 0

二叉树深度优先遍历和广度优先遍历

void widthFirst(Node *root) {     queue nodeQueue;     nodeQueue.push(root);          while(!nodeQueue.empty())     {                  Node* ...

2017-09-18 17:07:29

阅读数 289

评论数 0

求二叉树宽度和深度

//二叉树宽度 int widthOfBinaryTree(Node *root) {     if(root == NULL)         return 0;     queue nodeQueue;     int maxWidth = i;     nodeQueue.pu...

2017-09-18 12:00:34

阅读数 304

评论数 0

CentOS/Linux下设置IP地址

1:临时修改: 1.1:修改IP地址 # ifconfig eth0 192.168.100.100 1.2:修改网关地址 # route add default gw 192.168.100.1 dev eth0 1.3:修改DNS # echo "nameserv...

2017-09-09 14:06:08

阅读数 98

评论数 0

4种常见的MySQL日志类型

1.错误日志 记录启动、运行或停止mysqld时出现的问题 log-error=d:/mysql_log_err.txt 2.查询日志 记录建立的客户端连接和执行的所有语句(包括错误的)。 log=d:/mysql_log.txt 3、...

2017-09-09 14:03:11

阅读数 158

评论数 0

HTTP 请求方式: GET和POST的比较

GET和POST是HTTP的两个常用方法。   什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。 HTTP在客户端和服务器之间以request-response pro...

2017-09-09 13:53:34

阅读数 140

评论数 0

MySQL之——表数据文件损坏导致数据库无法启动

一、问题日志 [plain] view plain copy 2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally!   2017-08-31 14...

2017-09-08 15:31:41

阅读数 245

评论数 0

MySQL中四种常用存储引擎的介绍

(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表 支持3种不同的存储格式,分别是:静态表;动态表;压缩表 静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,...

2017-09-08 15:30:29

阅读数 79

评论数 0

rsync简介

rsync(rem ote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。 rsync是用于替代rcp的一个工具,rsync 使用所谓的 rsync算法进行数据同步,这种算法只传送两个...

2017-09-08 15:22:17

阅读数 159

评论数 0

linux设置服务自启动的三种方式

有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一) chkonfi...

2017-09-08 11:37:54

阅读数 189

评论数 0

TCP的三次握手

TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握...

2017-09-07 10:31:06

阅读数 121

评论数 0

数据库事务的四大特性以及事务的隔离级别

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据...

2017-08-31 17:01:48

阅读数 119

评论数 0

总结(20170830)

1.请问这个表达式( (A+B)*C - (D - E)^(F + G) )的前序表达 需要够着表达式的二叉树,然后就可以得到表达式的先序,中序和后序表达 先序:- * + A B C ^ - D E+ F G 中序:A + B * C - D - E ^ F + G 后序:A B + C...

2017-08-30 17:00:47

阅读数 169

评论数 0

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