2018年9月23日

Huffman树的构造及编码与译码的实现

摘要: 哈夫曼树介绍 哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln),N个权值 阅读全文

posted @ 2018-09-23 11:30 tianzeng 阅读(1458) 评论(0) 推荐(0) 编辑

2018年9月22日

一级指针与二级指针在动态链表中的应用

摘要: 对于LinkList L: L是指向定义的node结构体的指针,可以用->运算符来访问结构体成员,即L->elem,而(*L)就是个Node型的结构体了,可以用点运算符访问该结构体成员,即(*L).elem; 对于LinkList *L:L是指向定义的Node结构体指针的指针,所以(*L)是指向No 阅读全文

posted @ 2018-09-22 10:01 tianzeng 阅读(872) 评论(0) 推荐(0) 编辑

2018年9月21日

线索化二叉树

摘要: 线索二叉树 基本概念: n个结点的二叉链表中共有2n个链域,但只有n-1个有用的非空链域,其余n+1个是空的,利用这n+1个空链域来存放遍历过程中结点的前驱和后继;规定:若结点有左子树,则其LChild指向左孩子,否则LCHild指向前驱;若结点有右子树,则其RChild域指向右孩子,否则指向后继。 阅读全文

posted @ 2018-09-21 21:46 tianzeng 阅读(1200) 评论(0) 推荐(0) 编辑

2018年9月20日

汉诺塔递归过程中参数的变化

摘要: 汉诺塔问题描述 该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A 阅读全文

posted @ 2018-09-20 20:09 tianzeng 阅读(1630) 评论(0) 推荐(1) 编辑

2018年9月16日

常用的十种排序

摘要: 1、直接插入排序 最好O(n),最坏时间O(n^2),较稳定 基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 #include <iostream> using n 阅读全文

posted @ 2018-09-16 15:25 tianzeng 阅读(519) 评论(0) 推荐(0) 编辑

2018年8月28日

c/c++中system函数在Linux和windows下区别

摘要: windows 在windows下的system函数中命令可以不区别大小写! 功 能: 发出一个DOS命令 #include <stdlib.h> int system(char *command); 执行成功返回0,执行不成功由于不同的操作返回的值不同,可以查手册看 #include<stdio. 阅读全文

posted @ 2018-08-28 19:42 tianzeng 阅读(9410) 评论(0) 推荐(0) 编辑

2018年7月31日

I/O复用——select和poll

摘要: 概述 I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。I/O复用的函数本身是阻塞的,他们提高程序的效率原因在于他们具有同时监听多个I/O事件的能力。 阅读全文

posted @ 2018-07-31 17:17 tianzeng 阅读(632) 评论(0) 推荐(0) 编辑

2018年7月29日

信号

摘要: 异常 控制流突变,用来响应处理器的某些变化。处理器中,状态编码为不同的位和信号,状态变化称为事件,处理器检测到有事件发生时,他会通过一张叫异常表的跳转表,进行间接调用。 系统中的每个异常都有一个异常号,当系统启动时,操作系统分配和初始化一张称为异常表的跳转表,当处理器检测到一个事件发生时,处理器触发 阅读全文

posted @ 2018-07-29 16:34 tianzeng 阅读(1170) 评论(0) 推荐(0) 编辑

2018年7月23日

管道和FIFO

摘要: 匿名管道(pipe) #include <unistd.h>int pipe(int filedes[2]); 调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读端,filede 阅读全文

posted @ 2018-07-23 11:38 tianzeng 阅读(1564) 评论(0) 推荐(0) 编辑

2018年7月21日

read和write函数

摘要: 每一个TCP套接口有一个发送缓冲区,可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用进程调用 write时,内核从应用进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用进程的缓冲区大于 套接口发送缓冲区,或是套接口发送缓冲区还有其 阅读全文

posted @ 2018-07-21 18:51 tianzeng 阅读(22817) 评论(3) 推荐(5) 编辑

导航