自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鹰击长空

此去经年,谁许我一纸繁华

  • 博客(14)
  • 收藏
  • 关注

原创 二叉树的遍历

二叉树的遍历遍历概念所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方案遍历方案  从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:  (1)访问结点本身

2015-05-03 09:44:39 588

原创 二叉树的中序遍历线索化

二叉树的线索化@(Linux C/C++)[线索二叉树,中序遍历,]理论基础在二叉树的二叉链表表示实现的时候,当以二叉树作为存储结构时,只能找到节点的左右孩子信息,不能直接得到结点在任一序列中的前驱和后继信息,只有在遍历过程中才能得到这种信息。我们知道,在n个结点的二叉链表栈必定存在n+1个空链域,因此,可以利用这些空链域来存放这些结点信息。所以作如下规定:若结点右左子树,则其lchild域指向其左

2015-05-03 09:02:26 4641

原创 二叉树的前驱和后继

前提二叉树的几何结构和遍历路径,是查找前驱和后继的基础。结点分类几何结构千变万化,但单个结点必然和至多3点邻接:左(或右)父,左子和右子。按照“X”型助记,交叉点为研究对象。为求结点N的前驱结点Pre和后继结点Suc,设N的左子lchild,右子rchildm,N的左父亲lparent,右父亲rparent; 先后顺序同一几何结构,不同的遍历方式得到不同的遍历路径;具体到单个结点,也就有不同的前驱

2015-05-03 08:56:29 28468

原创 文本纠错项目一些问题

线程启动问题thread thread_run头文件namespace THREAD{ class CThread_RUN { public: virtual void run()=0; virtual void set_cache(hash_record* m_cache)=0; virt

2015-04-30 16:09:17 1744

原创 Linux 多线程聊天服务器

多线程实现QQ群聊天功能(1)Socket 实现建立网络连接和通讯功能#include <iostream>#include <netinet/in.h>#include <sys/socket.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/epoll.h>#include <time.h

2015-04-28 11:20:40 1312

原创 Linux 多线程目录遍历

目录遍历函数#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>char *getcwd(char *buf, size_t size);//获取当前目录的绝对路径DIR *opendir(const char *name); //获取一个路径的目录流DIRDIR *fdopendir(int fd);

2015-04-27 13:50:57 1972

原创 智能指针和引用计数以及String的C++实现

内存空间的开辟#include<iostream>#include<cstdio>#include<cstdlib>int main(int argc,char** argv){ int m=5,n=6; int **a= new int* [m]();//C++手法开辟 for(int index=0;index!=m;index++) {

2015-04-26 08:55:55 1281

原创 select I/O 多路复用实现服务器聊天室功能

基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。  (4)如果一个服务器即

2015-04-25 13:48:10 2513

原创 内存映射和文件操作函数

内存映射 mmap的函数定义: void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);函数参数详细解 参数fd为即将映射到进程空间的文件描述字,一般由open()返回,同时,fd可以指定为-1,此时须指定flags参数中的MAP_ANON,表明进行的是匿名映射(不涉及具体的文件名,避免了文件

2015-04-25 13:35:31 709

原创 POSIX信号量解决经典同步问题

posix信号量信号量简介POSIX信号量是属于POSIX标准系统接口定义的实时扩展部分。在SUS(Single UNIX Specification)单一规范中,定义的XSI IPC中也同样定义了人们通常称为System V信号量的系统接口。信号量作为进程间同步的工具是很常用的一种同步IPC类型。信号量是一种用于不同进程间进行同步的工具,当然对于进程安全的对于线程也肯定是安全的,所以信号量也理

2015-04-25 13:30:54 798

原创 epoll I/O 多路复用

select I/O 复用的缺陷(1)每次调用select函数后要针对所有的文件描述符循环遍历, 代码如下:result=select(fd_max+1,&temp_set,NULL,NULL,&timeout);for(int index=0;index!=fd_max+1;index++){ if(FD_ISSET(index,&temp_set)) { i

2015-04-24 17:41:09 477

原创 信号处理

信号集合SIGINT 2 Term Interrupt from keyboardSIGQUIT 3 Core Quit from keyboardSIGILL 4 Core Illegal InstructionSIGABRT 6 Core Abort signal from abort(3)SIGFPE 8 Core Floati

2015-04-24 16:59:46 481

原创 僵尸进程的处理

在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程。两种方法杀死僵尸进程,一般僵尸进程很难直接kill掉,不过您

2015-04-24 13:18:11 607

原创 Linux System V 信号量

linux 线程处理问题int semget(key_t key,int nsems,int flag);int semop(int semid,struct sembuf *sops,size_t nops);int semctl(int semid, int semnum, int cmd, …);struct sembuf{ short sem_num; //操作信号在信号集

2015-04-24 11:27:15 501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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