- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 深度优先搜索与广度优先搜索
二叉树深度优先遍历和广度优先遍历 对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以上面二叉树为例,深度优先搜索的顺序为:ABDECFG。怎么实现这个顺序呢 ?深度优先搜索二叉树是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特点,现将右子树压栈,再将左子树压栈
2017-08-31 16:04:42 275
转载 同一进程中的线程究竟共享哪些资源
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和
2017-08-28 19:47:54 554
原创 C++中重载、重写、重定义区别
重写、重载、重定义区别 1、成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 dvirtual关键字可有可无 2、重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 d 基类函数必须有virtual关键字
2017-08-28 19:29:33 319
转载 稳定排序和不稳定排序
转载自:http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不
2017-08-28 15:56:21 193
原创 华为OJ--判断两个IP是否属于同一个子网
题目描述子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。示例:I P 地址 192.168.0.1子网掩码
2017-08-24 17:10:22 437
原创 华为OJ——统计每个月兔子数目
题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少? /** * 统计出兔子总数。 * * @param monthCount 第几个月 * @return 兔子总数 */ public static
2017-08-24 11:32:12 293
转载 C++中的case标签
switch case语句在C++程序中使用的较为频繁,但是有很多细节可能平时不会注意到,本文总结一下switch case语句中的case标签。1、case是标签 先来说下标签(label)。如下一段代码:[cpp] view plain copy print?#include using namespace std
2017-08-23 15:14:08 3550
转载 进程间、线程间通信方式总结
一、进程间的通信方式# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种
2017-08-20 19:14:29 324
原创 逆序输出单词
一、题目描述对字符串中的所有单词进行倒排。说明:1、每个单词是以26个大写或小写英文字母构成;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;输入描述:输入一行以空格来分隔的句子输出描述:
2017-08-18 22:14:24 2128 1
原创 有符号数与无符号数之间的运算
在C/C++中,经常可能会涉及到一个无符号数与一个有符号数之间的运算。其实这个问题是关于C/C++语言中的整数自动转换原则:当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此,从这个意义上讲,无符号数的运算优先级要高于有符号数。如:#include#includeusing namespace std;int main(){ unsigned int
2017-08-17 21:16:58 12157 1
转载 变量的声明和定义区别
变量声明和定义的区别我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在
2017-08-17 15:30:36 467
原创 数据在OSI七层模型中的各层传输的数据和控制信息的格式总结
常用的信息格式包括帧、数据包、数据报、段、消息、元素的数据单元。物理层:传输比特流bit数据链路层:传输数据帧frame网络层:传输数据包Packet或者数据报datagram传输层:传输段segment应用层:传输消息message
2017-08-17 12:44:04 10349
原创 字符串空格替换
1、问题请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { }};2、解答思路:从前向后记录‘ ’(空格字符)数目,从后向前替换‘ ’。
2017-08-16 22:12:32 221
原创 vector<vector<int> >array 理解
在很多时候,类中二维数组的维度往往无法提前知道,因此需要动态地分配空间。使用new运算符是其中的一个解决方案,但是操作不当往往会造成内存溢出/泄漏。使用STL的vector可以避免这个麻烦。例如:在一个类中有一个Find(int target, vector > array)函数,其中的形参vector >array表达的是array是一个二维的int型的vecto
2017-08-16 17:27:52 8889 2
原创 Huffman算法实现最优二叉树(C++)
template class node{ public: node():left(0),right(0){} ~node(){} void setorder(int q=0):order(q){} void setdata(Type x,int first=0,int second=0) { data=x; left=f
2017-08-16 16:03:08 1292
原创 数组右移
1.题目假设有一个有 n 个元素的数组,求该数组右移 k 个元素后的数组,要求算法的空间复杂度为 O(1) 。输入数据右三行,第一行表示数组元素个数 n ,第二行表示数组,第三行表示 k71,2,3,4,5,6,73输出5,6,7,1,2,3,42.实现分析:思路是,从最后一位开始,找到它要填的位置,再去寻找那个位置的
2017-08-15 10:14:20 617
转载 循环队列中判断队满队空(数组实现的循环队列)
在引用循环队列前,我们需要了解队列是如何线性实现的。 (纠错:上图中出队列应该是:x=sq[front++])简单地讲,便是当队列为空时,front = rear = 0,每当插入元素尾指针+1,删除元素是头指针-1。但是,我们会发现一个问题,如上面的第四个图,0,1,2三个空间并没有使用。因此,为了占用该空间,我们使用了循环队列来实现。 循环队列原理图: 我们可以发现,当
2017-08-14 11:15:55 2478 1
转载 B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关
2017-08-14 10:43:02 179
转载 C++ 函数对象
函数对象:定义了调用操作符()的类对象。当用该对象调用此操作符时,其表现形式如同普通函数调用一般,因此取名叫函数对象。举个最简单的例子:[cpp] view plain copyclass A { public: int operator() ( int val ) {
2017-08-14 10:10:17 372
原创 C++ greater<int>()和less<int>()
1.greater和less是头文件template struct greater { bool operator() (const T& x, const T& y) const {return x>y;} typedef T first_argument_type; typedef T second_argument_type; typedef bool result_t
2017-08-11 10:43:39 35303 6
原创 C++ copy()函数
function templatestd::copytemplate OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result);Copy range of elementsCopies the elements in the range [f
2017-08-10 17:27:31 7068
原创 C# 字段与属性
类成员包括变量和方法。如果希望其他类能够访问成员变量的值,就必须定义成公有的,而将变量设为公有public,那这个成员变量的就可以被任意访问(包括修改,读取),这样不利于数据安全。 C#通过属性特性读取和写入字段(成员变量),而不直接直接读取和写入,以此来提供对类中字段的保护。属性可用于类内部封装字段。属性是C#面向对象技术中封装性的体现。属性和字段的区别:属性是逻辑字段,是字段的
2017-08-08 17:21:25 855 1
转载 为什么不能建立引用的数组?
引用就是某一个变量的别名,引用的地址就是原变量的地址,引用的值就是原变量的值不能建立引用的数组,例如:int & ref[3] = { 2, 3, 5}; //声明ref引用的数组是错误的但是可以建立数组的引用:例如:int arr[3]; int (&tef)[3] = arr; //这是这是正确的为什么数组中的元素不能是引用?c++中,引用可以说
2017-08-08 14:25:22 4637
原创 二叉树的递归与非递归遍历(前序、中序、后序)
二叉树遍历算法是各大软件公司面试经常提及的一个话题,笔者在总结网上的一些资料,将二叉树的(前序、中序、后序)递归遍历和非递归遍历算法总结如下,其中中序非递归算法最简单,后序非递归算法最难。首先,定义二叉树结点类型如下://Binary Tree Nodetypedef struct node{ int data; struct node* lchild;//左孩子 struct
2017-08-08 10:54:27 350
转载 二叉树的递归与非递归遍历(前序、中序、后序)
转载博客:http://www.cnblogs.com/SHERO-Vae/p/5800363.html二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种
2017-08-07 21:09:01 188
原创 makefile
makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定CPP文件的编译来产生特定的OBJ文件
2017-08-06 20:36:02 210
转载 LINUX用户管理——usermod命令的使用方法详解
usermod命令功能说明:修改用户帐号。语 法:usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l ][-s ][-u ][用户帐号]补充说明:usermod可用来修改用户帐号的各项设定。参 数: -c 修改用户帐号的备注文字。 -d登入目录> 修改用户登入时的目录。 -e 修改帐号的有效期限。
2017-08-06 19:13:00 940
原创 华为OJ-查找兄弟单词
题目描述输入描述:先输入字典中单词的个数,再输入n个单词作为字典单词。输入一个单词,查找其在字典中兄弟单词的个数再输入数字n输出描述:根据输入,输出查找到的兄弟单词的个数示例1输入3 abc bca cab abc 1输出2 bca注意:这道题目有些地方没说清楚!正确的描述应该是这样
2017-08-03 16:15:53 399
转载 RTTI 机制与作用
一、RTTI(Run-Time Type identification),通过运行时类型信息,程序能够使用基类的指针或引用来检查这些指针或引用所指向的对象的实际派生类型。面向对象的编程语言,想C++,Java,delphi都提供了RTTI的支持。RTTI并不是什么新技术,很早就有了,他主要提供了运行时确定类对象类型的方法。最近有用到这个RTTI,对它进行了一番小研究,下面做个小小的总结吧!在C
2017-08-03 14:21:52 248
转载 VS2015(Install Shield 2015 limited Edition )软件打包过程
转载自:http://blog.csdn.net/caiandyong/article/details/50586648VS2012没有自带打包工具,所以要先下载并安装一个打包工具。我采用微软提供的打包工具: InstallShield2015LimitedEdition。下载地址:https://msdn.microsoft.com/en-us/library/dn5310
2017-08-02 15:57:53 4593 2
转载 二叉树的一些性质
1.二叉树第i层至多有2^(k-1)个结点(i>=1)。 2.深度为k的二叉树上,至多含2^k-1个结点(k>=1) 3.n0 = n2 + 1(度) 4.满二叉树:深度为k且含有2^k-1个结点的树。 5.完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点。 (树中所含n个结点和满二叉树中编号为1至n的结点一一对应)。 6.具有n个结
2017-08-02 14:25:58 378
转载 关于数据结构中一些二叉树的定义
1、满二叉树定义:除最后一层的结点外,每一层的所有结点都有两个子结点。另外一个定义:深度为k且有2^k-1个结点的二叉树。 满二叉树是一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=h;它的叶子数是: 2^(h-1)第k层的结点数是: 2^(k-1)总结点数是: 2^k-1 (2的k次方减一)总节点数一定是奇数。 2、完全二叉树
2017-08-02 14:21:10 1042
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人