自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 求两个字符串中的最长公共子串的长度

利用二位矩阵对角线解决#include#includeusing namespace std;int getLCSLength(string str1, string str2){ int **temp= new int*[(str1.length())*(str2.length())]; //声明一个二维数组,存储最长公共子串长度 int length = 0; //最长公共子串

2015-09-29 14:10:01 2284

原创 求一个字符串中最长的数字串

#include#includeusing namespace std;char *FindNumber(char* out, const char *in)//参数分别为用于保存数字字符串的缓冲区和源字符串{ char*max = NULL, *p = NULL, *q = NULL; int i = 0, j = 0; p = in; while (*p) { p++;

2015-09-28 21:54:16 1371

原创 C/C++中结构体的区别

C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。C++中的结构体和类的异同:一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数; 也就是说在C++当中,结

2015-09-28 20:30:44 413

原创 层次遍历二叉树

第二种方法——队列具体步骤是:先将根节点入队列,再读出,删除,再将左右子节点入队列,再将队列的头元素读出并删除,再将头元素的左右子节点入队列,以此类推……void QueueVisit(BiTreeNode *p){queue q_first;BiTreeNode *temp;q_first.push(p);//将根节点插入到双向队列的尾部cout<<"按队列遍历:"<<endl;

2015-09-28 20:11:42 381

转载 关于TCP的疑难杂症

说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,学习网络

2015-09-27 15:28:47 1592

转载 B树、B+树的区别

一、B树1、B树的定义 B树是一种平衡的多分树,通常我们说m阶的B树,它必须满足如下条件: (1)每个结点至多有m个子结点; (2)除根结点和叶结点外,其它每个结点至少有 个子结点; (3)若根结点不是叶子结点,则至少有两个子结点; (4)所有的叶结点在同一层; (5)有k个子结点的非根结点恰好包含k-1个关键码。2、B树

2015-09-27 14:51:38 4658 1

转载 联合体(union)

联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是联合、怎么去用、有什么需要注意的地方呢?就这些问题,我试着做一些简单的回答,里面肯定还有不当的地方,欢迎指出! 1、什么是联合? “联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联

2015-09-27 12:09:16 395

原创 虚函数表指针的详细辨析

在每个包含有虚函数的类的对象的最前面(是指这个对象内存布局的最前面,至于为什么是最前面,说来话长,这里就不说了,主要是考虑到效率问题)都有一个称之为虚函数指针(vptr)的东西指向虚函数表(vtbl),这个虚函数表(这里仅讨论最简单的单一继承的情况,若果是多重继承,可能存在多个虚函数表)里面存放了这个类里面所有虚函数的指针,当我们要调用里面的函数时通过查找这个虚函数表来找到

2015-09-26 21:07:44 864

原创 计算一个数的二进制位中1的个数的方法总结

方法一、通过移位分别判断各个位int bit_count(unsigned int n){int count;        for(count=0;n;n>>=1){count+=n&1;        }       return count;}方法2:循环中直接计算1的数量如何只数'1'的个数?如果一个数字至少包含一个'1'位,那么这个数字减1

2015-09-26 20:05:38 4261

转载 避免死锁

什么是死锁什么是死锁,如何避免死锁? 线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,这种情况称为死锁(deadlock),或死亡拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。死锁的四个必要条件-----------------------

2015-09-26 19:47:25 466

转载 shell中单引号、双引号、反引号、反斜杠的区别

可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符`1. 单引号 ( '' )# grep Susan phonebookSusan Goldberg 403-212-4921Susan Topple 212-234-2343如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命

2015-09-25 13:33:37 1675

原创 不用库函数求两个数除法运算

用移位运算模拟库函数来实现除法运算#include int div(const int x, const int y){ int div = x, m, result = 0; while (div >= y) { m = 1; while (m * y > 1)) //通过移位运算 { m <<= 1; } result += m; div -= m

2015-09-22 08:40:46 501

原创 二叉树深度优先遍历和广度优先遍历

深度优先遍历,将一颗二叉树优先往更深层次遍历,先遍历根,然后分别是左子树和右子树,借助栈的数据结构来实现。先将右子树压栈,在将左子树压栈。void depthFirstSearch(Tree root){    stackNode *> nodeStack;  //使用C++的STL标准模板库    nodeStack.push(root);    Node *node; 

2015-09-16 23:08:54 782

转载 shell脚本中的awk脚本语法

目录:一、概述二、awk基本语法格式三、awk基本操作四、awk条件及循环语句五、awk函数六、awk演示示例(源自于man手册)一、概述1. 产品概述: awk是一种编程语言,用于在linux/unix下对文本和数据进行扫描与处理。数据可以来自标准输入、文件、管道。 awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Pete

2015-09-16 12:04:26 1669

原创 常用几种设计模式

1 单例模式 允许自由创建每个类没有实际意义,还有可能造成系统性能下降 优势:减少创建java实例带来的系统开销 便于系统跟踪某个实例的生命周期,实例状态等 2 工厂模式: 工厂模式又分简单工厂模式,抽象工厂模式 使用简单工厂模式的优势是:让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。从而避免了对

2015-09-13 17:25:55 798

转载 简单工厂模式和工厂方法模式

在OO设计领域,我们知道前人总结了不少的经验,许多的经验在现代软件工程过程中已经被认为是原则来遵守。下面笔者摘抄几项下文涉及到的OO原则的定义。OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。我的理解是,对于一个已有的软件,如果需要扩展,应当在不需修改已有代码的基础上进行。DIP(依赖倒转原则,Dependence Inversio

2015-09-13 17:06:55 1048

转载 Unix网络编程中的I/O模型

1.阻塞I/O模型与非阻塞I/O模型阻塞与非阻塞的模型主要区别是:阻塞I/O模型中用户进程在能读取数据之前会进入睡眠或者挂起状态;而非阻塞情况下遇到读取数据失败时内核直接返回错误信号,用户进程便在成功返回数据之前一直在调用recv操作询问数据可读性,因此这种情况也成为轮询机制。 这两种过程就好比如:一位大伯住在某一栋楼,一楼有他的邮箱,他可以选择两种方式去取他的邮件,一种是跑到一楼去

2015-09-13 17:02:54 336

原创 关于函数返回值为引用和指针的问题

如果函数的返回值为引用,则不需要创建无名临时对象,避免构造函数和析构函数的调用,从空间和时间上提高了程序执行的效率 返回值为引用的情况。 #include #include using namespace std; char & get_value(string &str,int i)

2015-09-13 13:29:36 1806

转载 利用深度搜索法解决八皇后问题

八皇后问题每行必须有一个皇后,所以,对棋盘深搜时,第一个皇后的位置不妨设为第一行,这样只对第一行进行搜索,同理,第二个皇后不妨设为第二行,以此类推。下面附我的代码:#includeusing namespace std;struct node1{bool b[8][8]; };//棋盘模拟,不可以放皇后的地方值为0,可以为1;struct node2{ int x,y;

2015-09-13 11:40:40 1965

转载 计算机网络相关面试题

1、OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层、网络层、传输层和应用层。结合OSI

2015-09-08 12:15:58 1095

原创 插入排序

最好的情况是原来的序列已经是升序需要比较n-1次时间复杂度是O(n),最坏的情况是原来的序列是降序,需要比较n(n-1)/2次,时间复杂度是O(n2).只需要一个辅助空间,空间复杂度为O(1)#include void InsertSort(int arr[], int n){ for (int i = 1; i < n; ++i) { int tmp = arr[i];

2015-09-03 21:38:58 342

空空如也

空空如也

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

TA关注的人

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