自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一息尚存 从吾所好

try hard, harder, hardest!

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 判断二叉树是不是完全二叉树

完全二叉树定义:除最后一层外,其它各层的结点数都达到最大个数,并且最后一层所有的结点都连续集中在最左边,这就是完全二叉树。定义形象化:(1)除最后一层外,其它各层的结点数都达到最大个数如果一个结点的孩子数小于2,那这个结点一定在最后两层中的某一层,否则一定不是完全二叉树。因为,除最后一层,其他各层构成满二叉树。那么如果一个结点孩子数小于2,那它的后续结点必须是叶子结点。(2)最后一

2016-04-24 23:19:50 537

原创 判断一棵树是不是满二叉树

满二叉树的定义:除最后一层是叶子结点,其他各层

2016-04-24 22:48:10 1042

原创 二叉树翻转

原二叉树:翻转后的二叉树:主程序代码:思路很简单,就交换左右孩子的指针。void InvertTree(TreeNode *root){ if(NULL == root) return; std::swap(root->left, root->right); InvertTree(root->left); InvertTree(roo

2016-04-20 16:03:47 270

原创 判断一棵树是不是AVL树

这里的AVL树指的是,在BST树的基础上,满足任意结点的平衡因子绝对值小于2判断主程序:bool JudgeAvl(TreeNode *root, int min, int max, int &deepth){ if(root == NULL) return true; if(root->val val > max) return false; //主要判断符不

2016-04-20 15:29:47 1440

原创 求二叉树的最后一层

二叉树表示如下:二叉树前序序列化表示如下:1 2 4 8 -1 -1 9 -1 -1 5 10 -1 -1 11 -1 -1 3 6 -1 12 -1 -1 7 -1 -1-1代表左右孩子为NULL的情况,使用前序序列构建二叉树(递归或非递归)。二叉树结构表示如下:struct TreeNode{ TreeNode(int value):left(NULL)

2016-04-20 15:11:55 263

原创 二叉树递归、非递归求深度

(一)递归求深度int TreeDeepth_Recur(TreeNode *root){ if(root == NULL) return 0; int left_deepth, right_deepth ; left_deepth = TreeDeepth_Recur(root->left); right_deepth = TreeDeepth_Recur(r

2016-04-19 23:08:55 290

原创 判断一棵树是不是二叉搜索树

(一)递归判断递归判断时,在结点值为整型时,必须指定初始最小值为INT_MIN,最大值为INT_MAX,每次递归时,传入上一层的结点值最为判断依据。bool JudgeBst_Recur(TreeNode *node, int min, int max){ if(node == NULL) return true; if(node->val val > max) retur

2016-04-19 21:17:22 359

原创 二叉树后序递归、非递归遍历

二叉树如下所示:二叉树的前序序列化表示如下:1 2 4 7 -1 -1 -1 5 -1 8 -1 -1 3 6 -1 -1 -1  -1代表左右子树为NULL的情况,使用前序序列构造二叉树。二叉树的结构体定义如下:struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){

2016-04-19 19:50:09 261

原创 二叉树中序递归、非递归遍历

二叉树如下:二叉树前序序列化表示如下:1 2 4 7 -1 -1 8 -1 -1 5 -1 -1 3 6 -1 -1 -1-1代表左右子树为NULL的情况,使用前序序列构造二叉树。二叉树结构体表示如下:struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){ } TreeNod

2016-04-19 19:02:29 199

原创 二叉树前序建立(递归、非递归),前序遍历(递归、非递归)

二叉树如图所示:二叉树结构定义如下:struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){ } TreeNode *left; TreeNode *right; int val;};二叉树前序序列化表示如下:1 2 4 -1 -1 5 7 -1 -1 -1 3

2016-04-19 14:46:17 381

原创 读<<effective C++>>的疑惑总结

代码编译环境:操作系统:Red  Hat  5.6  i386  编译器:  GCC  4.1.2条款05:了解c++默默编写并调用哪些函数如果某个base classes将copy assignment操作符声明为private,编译器将拒绝为其派生类生成一个copy assignment??#include namespace contestjia{ class

2016-03-26 21:10:35 227

原创 数组中只出现一次的数字

剑指offer面试题40:一个整型数组里除了连个数字之外,其他的数字都出现了两次。请写出程序找出这两个只出现一次的数字。时间复杂度O(n),空间复杂度O(1).解法是一样的,只是觉得找最右边第一个比特1的时候,可以有更简单的方法。题目是整型数组,因此也可以是负数,对一个负数进行右移操作,这可能出现错误。#include int main(){ int N[ ] = {

2016-03-14 00:03:40 683

原创 自己实现atof

基本想法:例:123.456E1234,其中小数点前面算整数部分,小数点到E是小数部分,E后面的是有效数部分。#include #include #include #include using std::string;using std::ifstream;#define INTEGER 0#define FRACTION 1#define SIGNIF 2float

2016-03-10 22:10:46 329

原创 一条shell统计当前目录下的文件行数

初级版本:(1)find ./ -name "*.h" -o -name "*.c" | xargs wc -l | awk 'END{print $1}'(2)find ./ -name "*.h" -o -name "*.c" | xargs awk 'BEGIN{count};{count++;} END{print count}'(3) find ./ -name "*

2015-09-13 00:56:11 619

原创 用一个循环输出99表~~~

题目来源如下:http://bbs.tinygroup.org/thread-1487-1-1.html具体要求:1. n可以是任意正整数,只要N的平方不要溢出都可以2. 一行一行print结果的无效3. 不允许出现if,switch,?:语句及判断语句的变体,也就是只允许循环变量做条件比较以确定循环次数,不允许其它变量进行条件判断5. 不允许出现异常6. 循环语句中只

2015-09-10 22:20:10 421

原创 非阻塞connect的测试

工作在ET模式的epoll,描述符基本都是设置为非阻塞(nonblocking)的。阻塞的connect,最多可以等待75s(第二次握手syn+ack一直没到来),效率很低。对于非阻塞connect,调用函数后,通常返回-1,但并不代表出错,还要检查errno值,如果是115(EINPROGESS),则表示连接正在进行中。但如果对端的端口一直没打开,则connect后,errno还是115,不会是

2015-06-28 14:08:30 554

原创 Linux下epoll事件的触发条件

针对TCP连接的epoll触发条件,UDP没经过测试:触发EPOLLIN的条件:           (1)只注册EPOLLIN:                     只在内核缓冲区由不可读变成可读的时候触发。           (2)只注册EPOLLOUT:                     不会触发。           (3)同时注册EPOLLIN |

2015-06-28 12:51:06 796

原创 数据包离开主机的过程~~~

这片文章不是从内核的角度来分析数据包的处理流程,所以,对于想要从内核了解的人会失望了,本文的目的等同于基础知识的普及,能够让大家对网络书上的知识有一个现实的认识。主机在发送数据包的时候,是从协议栈的上层到下层依次封装数据包(网络基础知识可以参看这本书>)。现在,以一个ICMP数据包的发送过程为例来讲解,在Packet Tracer中模拟ICMP通信,网络结构图如下所示:其中PC0的配置

2015-01-06 19:29:02 400

原创 Linux网络环境下的ARP攻击

ARP攻击的基本原理很简单,通过百度百科的知识就能了解。其主要原理是通过ARP包,进行主机或网关的欺骗。我将ARP欺骗大致分为两类:(一)欺骗主机:通常是伪装成网关(不想让欺骗主机上网)或局域网的某一台机器(不想让欺骗主机与这台主机进行通信),给被欺骗主机发送ARP响应包。(二)欺骗网关:通常是伪装成某一台机器,给网关发送ARP响应包,这样会导致在以后的通信中,网关发回来的数据包到达不

2015-01-06 18:20:42 561

原创 跨交换机VLAN通信 / 单臂路由VLAN通信

最近了解了一下VLAN的知识,根据现有设备搭建了如下网络环境,在此记录一下学习的过程。其中使用的两台交换机型号为H3C S5120-28P-SI,路由器的型号为H3C  MSR 36-40,其中交换机为三层交换机,支持路由功能,并且交换机和路由器都支持IPv6的功能。要求如下:(1) IPv4: 10.1.2.0 / 24网段 与 172.16.17.0 / 24 网段可以互相ping

2015-01-06 16:47:59 766

原创 用vim打开一个文件时,自动给文件头部添加注释信息

给源码文件头部添加注释信息,有很多方法,这里介绍一种在文件打开时,自动给文件添加头部信息的方法,网上很多文章,都只能在文件打开后,通过映射快捷键到指定函数来添加头部信息,本文章中的部分函数,有参考此博客http://www.cnblogs.com/mfryf/p/3643349.html,但具体思路是自己所想。     具体.vimrc中的配置代码如下: """""""""""""""""

2014-12-29 20:29:40 731 1

转载 linux下动态链接实现原理

请尊重原创者的辛劳,原文连接为:

2014-09-13 17:27:44 339

转载 MMU内存管理单元

点击打开链接

2014-09-13 11:09:06 334

转载 sizeof()用法汇总

sizeof()功能:计算数据空间的字节数1.与strlen()比较      strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。      而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作      指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为

2014-09-13 09:17:08 265

Guide.to.Assembly.Language.A.Concise.pdf

Assembly.Language suit for computer science

2012-09-16

空空如也

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

TA关注的人

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