自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bingo_12345的博客

学习、积累、进步

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

转载 TCP的拥塞控制

1.引言       计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。       拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。2.慢开始与拥塞避免

2015-10-13 20:39:18 557

转载 C++中进程间相互通信的十一种方法(转)

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:  一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方  另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程的

2015-10-13 20:29:15 766

转载 中断与异常的区别

一、中断:系统停止当前正在运行的程序而转向其他服务,可能是因为优先级高的请求服务了,或者是因为人为安排中断。中断是属于正常现象。   异常:是由于软件错误而引起的二、中断是CPU所具备的功能   --   硬件   异常是软件运行过程中的一种开发过程中没有考虑到的程序错误   --   软件   三、1.中断的概念         所谓中断是指CPU对系

2015-10-07 21:48:43 5349

转载 socket通信基本流程

“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型

2015-10-07 16:48:14 2915

转载 哈夫曼树

在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结

2015-10-06 21:00:44 1517

转载 进程间通信机制

进程间通信机制1   文件映射  文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。  Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现

2015-10-06 20:39:01 386

转载 static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?C语言中讲讲static变量和static函数有什么作用static关键字有两种意思,你看上下文来判断1,表示变量是静态存储变量 表示变量存放在静态存储区. 2,表示该变量是内部连接 (这种情况是指该变量不在任何{}之内,就象全局变量那

2015-10-06 19:14:48 387

转载 动态链接库和静态链接库的区别

静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。  静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生

2015-10-06 15:35:31 370

转载 TCP定时器

TCP/IP中关于定时器的介绍,TCP为每条连接建立七个定时器,分别为:    1.连接建立定时器,在发送SYN报文段建立一条新连接时启动。如果没有在75S内收到响应,连接建立将终止。    2.重传定时器在TCP发送数据时设定。如果定时器已超时而对端的确认还未到达,TCP将重传数据。重传定时器的值(即TCP等待对端确认的时间)是动态计算的,取决于TCP为该连接测量的往返时间和该报

2015-10-06 09:16:13 425

转载 tcp要点学习-断开连接

tcp要点学习-断开连接2009-11-19 19:50:00查看学习心得主要部分,四次握手:    断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白

2015-10-05 22:03:18 387

转载 TCP 窗口机制

TCP协议在能够发送数据之前就建立起了“连接”。要实现这个连接,启动TCP连接的那一方首先将发送一个SYN数据包。这只是一个不包含数据的数据包, 然后,打开SYN标记。如果另一方同时在它收到SYN标记的端口通话,它将发回一个SYN+ACK:SYN和ACK标志位都被打开,并将ACK(确认)编 号字段设定为刚收到的那个数据包的顺序号字段的值。接下来,连接发起方为了表示收到了这个SYN+ACK信息,会向

2015-10-05 21:52:13 501

转载 组播技术

引言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议、网络音频/视频广播、AOD/VOD、股市行情发布、多媒体远程教育、CSCW协同计算、远程会诊。这就带来了带宽的急剧消耗和网络拥挤问题。为了缓解网络瓶颈,人们提出各种方案,归纳起来,主要包括以下四种: ●增加互连带宽; ●服务器的分散与集群,

2015-10-04 20:26:00 825

转载 VLAN tag格式

VLAN帧格式的相关知识点:这四个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI)。TPID(Tag Protocol Identifier)是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID包含了一个固定的值0x8100。TCI是包含的是帧的控制信息,它包含了下面的一些元素:Prior

2015-10-04 20:23:37 13779

转载 组播技术

1  概述1.1  产生背景传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播;另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播。如果要将信息发送给多个主机而非所有主机,若采用广播方式实现,不仅会将信息发送给不需要的主机而浪费带宽,也不能实现跨网段发送;若采用单播方式实现,重复的IP包不仅会占用大量带宽,也会增加源主机的负载。所以,传统的单

2015-10-02 10:21:39 787

转载 C++基类,派生类,同名覆盖原则

[cpp] view plaincopy// 同名覆盖原则.cpp: 主项目文件。  #include "stdafx.h"  #include  #include  using namespace std;  class One  {  private:      string name;      int age;  pu

2015-09-29 20:57:31 1100

转载 数组指针与指针数组

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;      

2015-09-22 11:00:00 375

原创 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路:用递归实现:序列化二叉树,按照中序遍历二叉树的顺序,先左节点,后右节点,当到‘#’时候,说明左节点或者右节点为NULL,同样反序列二叉树也一个道理,需要注意的是在序列和反序列二叉树的时候,注意字符串与整数的转换,一般字符串转换为整数,用迭代循环实现,整数转换为字符串可以用sprintf实现或者itoa实现;

2015-09-20 13:22:38 435

原创 按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路:用两个栈交替压入弹出处理,代码如下: vector > Print(TreeNode* pRoot) { vector> vv; if(pRoot == NULL)

2015-09-19 21:43:15 375

原创 正则表达式匹配

题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配思路:递归方法判断:1、当前字符都是‘\0’,返回true;2、当前字符

2015-09-18 20:29:20 428

原创 求1+2+3+...+n

题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路一:利用&&的判断特性(前面false不在判断后面)递归来做; int Sum_Solution(int n) { int t = 0; bool b = (n!=0 && (t = S

2015-09-18 14:06:18 611

原创 扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12

2015-09-18 11:09:49 537

转载 c++字符串操作函数

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。    好了,进入正题………首先,为了在我们的程序中使用

2015-09-13 21:43:32 619

原创 数组中只出现一次的数字(异或方法)

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:使用异或,但是与在成对出现的数字中查找一个单独的数字不同的是需要利用异或结果的最低位为1的flag将数组中的数字分为两类,一类是与flag按位与为0,另一类为不为0,这样再分别异或一次就能够找出这两个数。很是巧妙。其中有一个语法上容易忽略的坑:==的优先级比&高,所以&时需要加

2015-09-13 17:34:46 484

原创 识别有效的IP地址和掩码并进行分类统计

描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.255.255.255;  B类地址128.0.0.0~191.255.255.255;  C类地址192.0.0.0~223.255.255.255; D类地址224.0.0.0~239.255.2

2015-09-11 15:06:32 618

原创 火车进站

描述给定一个正整数N代表火车数量,0知识点栈运行时间限制0M内存限制0输入有多组测试用例,每一组第一行输入一个正整数N(0输出输出以字典序排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见sample。样例输入

2015-09-10 19:53:14 1002

原创 华为OJ题目 配置文件恢复

描述有6条配置命令,它们执行的结果分别是:命   令执   行resetreset whatreset boardboard faultboard addwhere to addboard deletno board at allreboot backplaneimpossiblebackplane abortinstall firsthe heunkown command 注意:he h

2015-09-10 15:03:27 1768

原创 C++ 华为 合唱队

描述计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,   则他们的身高满足存在i(1Ti+1>......>TK。      你的任务是,已知所有N位同学的身高,计算最少需要几位同学出

2015-09-09 22:13:26 1468 1

原创 把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 string PrintMinNumber(vector numbers) { string ss; int len = numbers.size();

2015-09-09 15:33:04 331

转载 C风格字符串和C++string对象的相互转化

在C语言中,字符串以字符数组的形式存储。而C++中则引入string类(注意"s"是小写!)。C风格的字符串很容易转化成C++风格的字符串,反过来却可能引起语法错误。一、C风格的字符串转化为C++的string对象C++中,string 类能够自动将C 风格的字符串转换成string 对象#include #include using namespace std;

2015-09-09 15:09:00 661

转载 C++中字符串与数字相互转换

1. 字符串转数字如将“32”转为32,将“3.1415”转为3.1415,将“567283”转为567283。使用://Convert string to integer, more @http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/int atoi ( const char * str );//Conve

2015-09-08 21:43:09 631

原创 整数中1出现的次数(从1到n整数中1出现的次数)

题目描述整数中1出现的次数(从1到n整数中1出现的次数)思路一:将每个数转换成字符串,逐个数逐位比较。(较费时费劲)代码: int NumberOf1Between1AndN_Solution(int n) { int count = 0; char a[10]; Stringstream s

2015-09-08 17:09:33 263

原创 最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。基本方法:思路一:在K个数的数组中多次排序,每次替换掉最大的,直到原数组中的数比较完;代码: vector GetLeastNumbers_Solution(vector input, int k) { in

2015-09-08 10:34:06 332

原创 字符串的排列(全排列,包含重复的字符)

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。     void Per(int begin,string &str,vect

2015-09-07 17:07:04 2378

原创 二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路一:(较麻烦)1、当前结点有左子树,则当前结点连接到左子树递归产生的双项链表的最后,返回本节点;2、当前结点有右子树,则当前结点连接到右子树递归产生的双项链表的最前,返回本节点;3、叶子结点直接返回本节点;注意:由

2015-09-07 16:00:29 444

原创 复杂链表的复制(结点包含随机指针)

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。思路:1、在原链表上面复制,新节点连到相同的老结点后面;2、复制随机指针,老结点的随机指针(老结点后面的结点的随机指针指向,老结点随机指针所指节点的下一个结点)3、将两个链表分离,返回头指针;代码如下: RandomList

2015-09-07 13:29:11 818

原创 二叉树中和为某一值的路径

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:1、节点为空,直接返回2、节点不为空,把节点的数值压入路径中,如果节点的值等于路径剩余的值且是叶子节点,把该路径加入到路径集合中,并把路径中的该节点弹出;否则遍历左子树右子树(剩余的值为上一层值减去本节点的值),最

2015-09-06 20:26:31 474

原创 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路如下:后续遍历要求左子树大于根大于右子树,数组前半段小于最后一个元素,后半段大于最后一个元素,否则返回false;递归,检查所有子树(数组为空时返回false,递归前先检测子树是不是空)代码如下: boo

2015-09-06 15:27:43 3277

原创 栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路:1、栈空时,压入一个;2、弹出序列第一个元素与栈顶元素比较,相同,则弹出一个,不相同再压入

2015-09-06 14:19:09 452

原创 将矩阵顺时针打印出来

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路一:先搞清楚打印圈数,int cir = (Math.min(Row,Col) - 1)/2 + 1;再

2015-09-06 11:24:16 352

原创 输入两颗二叉树A,B,判断B是不是A的子结构。(树中可能有重复的值)

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。步骤:本节点是不是与子树根节点相同,是:分别比较左右节点,否:本节点的左右子节点是否与子树根节点相同;最后没有找到相同的,返回false代码: bool BeOne(TreeNode* pRoot1,TreeNode* pRoot2){ if(pRoot2 ==NULL)

2015-09-06 10:08:23 982

空空如也

空空如也

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

TA关注的人

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