自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 单例模式的C++实现

转自:http://blog.csdn.net/hackbuteer1/article/details/7460019单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能

2015-07-12 21:11:44 394

原创 string类的实现

class String{public:     String(const char*str = NULL);// 普通构造函数     String(const String &other);    // 拷贝构造函数     ~ String(void);    // 析构函数     String & operate =(const String &other);//

2015-07-12 20:28:50 626

原创 面试题小结(6)

1. 扑克牌的推理P先生、Q先生都具有足够的推理能力。这天,他们正在接受推理面试。他们知道桌子的抽屉里有如下16张扑克牌:红桃 A、Q、4黑桃 J、8、4、2、7、3草花 K、Q、5、4、6方块 A、5约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什

2015-07-11 21:41:42 1184

原创 智力题小结(5)

1. 一个巨大的圆形水池,周围布满了老鼠洞。猫追老鼠到水池边,老鼠未来得及进洞就掉入水池里。猫继续沿水池边缘企图捉住老鼠(猫不入水)。已知V猫=4V鼠。问老鼠是否有办法摆脱猫的追逐?答案:第一步:游到水池中心。 第二步:从水池中心游到距中心R/4处,并始终保持鼠、水池中心、猫在一直线上。第三步:沿与中心相反方向的直线游3R/4就可以到达水池边,而猫沿圆周到达那里需要3.14R,

2015-07-11 16:59:37 1174

原创 智力题小结(4)

1. 某城市发生了一起汽车撞人逃跑事件,该城市只有两种颜色的车,蓝15%绿85%,事发时有一个人在现场看见了,他指证是蓝车,但是根据专家在现场分析,当时那种条件能看正确的可能性是80%那么,肇事的车是蓝车的概率到底是多少?答案:设看到蓝车为事件A看到绿车为事件B看正确为事件C看错误为事件D所求为发生事件C的情况下A发生P(C|A)=P(CA)/P(A)=P(A)P(C|

2015-07-11 13:13:35 1109

原创 智力题小结(3)

1.有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?答案:第一步:把140克盐分成两等份,每份70克。第二步:把天平一边放上2+7克砝码,另一边放盐,这样就得到9克和61克分开的盐。第三步:将9克盐和2克砝码放在天平一边,另一边放盐,这样就得到11克和50克。于是50和90就分开了。 2. 国王招来100个囚犯,对他们说:你们犯的

2015-07-10 23:08:08 1212

原创 智力题小结(2)

1.你在一幢100层大楼下,有21根电线线头标有数字1..21。这些电线一直延伸到大楼顶,楼顶的线头处标有字母A..U。你不知道下面的数字和上面的字母的对应关系。你有一个电池,一个灯泡,和许多很短的电线。如何只上下楼一次就能确定电线线头的对应关系?答案:在下面把2,3连在一起,把4到6全连在一起,把7到10全连在一起,等等,这样你就把电线分成了6个“等价类”,大小分别为1, 2, 3, 4,

2015-07-10 20:36:39 1204

原创 智力题小结(1)

1.有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间? 答: 香a点燃一头,香b点燃两头。等香b烧完时,时间过去了30分钟。再把香a剩下的另一头也点燃。从这时起到a烧完的时间就是15分钟。 2.一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理

2015-07-10 18:26:10 1182

原创 九:二叉搜索树与双向链表(二叉搜索树转为有序双向链表)

问题描述:输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。 解析:借助二叉树中序遍历,因为中序遍历二叉搜索树的特点就是从小到大访问结点。当遍历访问到根结点时,假设根结点的左侧已经处理好,只需将根结点与上次访问的最近结点(左子树中最大值结点)的指针连接好即可。进而更新当前链表的最后一个结点指针。 递归算法:(1)中序遍历。(2)原先指向左子结点的指针调整为链表中指向前一个结点的指针,原先指向右子结点

2015-07-10 10:22:37 717

原创 MSP430G2553电子时钟实验

用msp430g2553控制1602液晶显示时间,并可以通过按键设置时间,我做了正计时和倒计时两种模式/*********************************************************************msp430g2553与1602引脚连接情况* PIN1 --> 地* PIN2 --> VCC(一定要接+5V)* PIN3 -->仿真时悬空,实际电路 2K电阻-->地 (电阻可以是500-2k的,改变电阻可以改变字符显示的亮度,电阻接不好会导致什么都不显

2015-07-09 23:18:19 6718 1

原创 八:二叉搜索树的后序遍历

问题描述:输入一个整数数组,判断该数组是不是某二叉查找树的后序遍历的结果。如果是返回true,否则返回false。解析:根据后序遍历的定义,如果一个序列是二叉树的后续遍历的结果,那么我们不难得出,序列的最后一个节点必定是二叉树的根节点,除了根节点外,序列中前一部分是二叉树的左子树的节点,后面一部分是二叉树的右子树的节点。同理,左右子树的遍历结果也具有一样的特点。

2015-07-09 22:28:13 681

原创 七:重建二叉树(根据先序遍历(或者后序遍历)和中序遍历重建二叉树)

对于一颗二叉树,可以根据先序遍历(或者后序遍历)和中序遍历(树中不含重复的数字)重新还原出二叉树。解析:1. 先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。2. 根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。3. 找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树,典型的递归思想。

2015-07-09 17:01:28 931

原创 六:二叉树中第k层节点个数与二叉树叶子节点个数

二叉树中第k层节点个数递归解法:(1)如果二叉树为空或者k<1返回0(2)如果二叉树不为空并且k==1,返回1(3)如果二叉树不为空且k>1,返回左子树中k-1层的节点个数与右子树k-1层节点个数之和二叉树叶子节点个数递归方式(1)如果给定节点pRoot为NULL,则是空树,叶子节点为0,返回0;(2)如果给定节点pRoot左右子树均为NULL,则是叶子节点,且叶子节点数为1,返回1;(3)如果给定节点pRoot左右子树不都为NULL,则不是叶子节点,以pRoot为根节点的子树叶子节点数

2015-07-07 23:04:34 1972

原创 五:二叉树中和为某一直的路径

当用前序遍历的方式访问到某一节点时,我们把这个节点添加到路径上,并累加该节点的值,如果该节点为叶子节点并且路径中节点值的和刚好等于输入的整数,则当前的路径符合要求,我们把它打印出来。如果当前节点不是叶节点,则继续访问它的子节点。当前节点访问结束后,递归函数将自动回到它的父节点。因此我们在函数退出之前要在路径上删除当前节点,并减去当前节点的值,以确保返回父节点时路径刚好是从根节点到父节点的路径。不难看出保存路径的数据结构实际上是一个栈,因为路径要与递归调用状态一致,而递归调用的本质就是一个压栈和出栈的过程。

2015-07-07 20:15:39 705

原创 四:二叉树的镜像递归非递归求解

二叉树的镜像递归非递归求解1. 递归求解:先序遍历树的每个结点,若遍历到的结点有子结点,则交换它的两个子结点。2. 非递归求解(借助栈)借助于栈,先交换两棵子树,再求完一棵子树的镜像后在求另一棵子树的镜像(纵向,深度优先)3. 非递归求解(借助队列)借助于队列以用广度优先的顺序遍历一遍实现逐层镜像(横向,广度优先)

2015-07-07 14:52:42 854

原创 三:求二叉树的深度以及判断二叉树是否平衡

求树的深度int TreeDepth(BinaryTreeNode* pRoot)  {     if (pRoot == NULL)         return 0;     int nLeftDepth = TreeDepth(pRoot->m_pLeft);     int nRightDepth = TreeDepth(pRoot->m_pRight)

2015-07-07 13:20:55 693

原创 二:二叉树的递归与非递归遍历

以根结点的访问顺序纷飞前,中,后序1.前序遍历:递归:void PreOrder(BiTree *root){   if(root!=NULL)    {       coutdata        PreOrder(root->lchild);        PreOrder(root->rchild);    }} 非

2015-07-06 16:56:52 326

原创 一:二叉树的性质及创建

二叉树的性质 性质1:在二叉树的第i层上至多有2i-1个结点(i≥1)。(数学归纳法可证)性质2:深度为k的二叉树最多有2k-1个结点(k≥1)。(由性质1,通过等比数列求和可证)性质3:一棵二叉树的叶子结点数为n0,度为2的结点数为n2,则n0 = n2 + 1。证:结点总数n = n0 + n1 + n2。设B为分支总数,因为除根节点外,其余结点都有一个分支进入,所以n =

2015-07-06 16:31:45 486

原创 死锁的产生与解决

死锁:所谓死锁,是指在多道程序系统中,指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。产生死锁的主要原因有两个:一是竞争资源;二是多道程序运行时,进程推进顺序不合理。 1. 产生死锁的四个必要条件:(1)互斥条件:指进程对所分配到的资源进行独占且排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它

2015-06-30 20:44:39 527

原创 LRU(Least Recently Used)最近最少使用页面置换算法

LRU(Least Recently Used)最近最少使用页面置换算法通常在前几条指令中使用频繁的页面很可能在后面几条指令中页频繁使用。LRU算法就是在缺页发生时首先置换最长时间未被使用的页面。例如:页面走向:  4  3  2  1  4  3  5  4  3  2  1  5时间短页:  4  3  2  1  4  3  5  4  3  2  1  5时间中

2015-06-30 19:33:59 1618

原创 FIFO(First-In First-Out)先进先出页面置换算法详解

FIFO(First-In First-Out)先进先出页面置换算法:FIFO淘汰算法总是淘汰最先装入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法实现只需把一个进程已调入内存的页面,按访问的时间先后顺序链接成一个队列,并设置一个指针,该指针始终指向“最老“的页面。他的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,他没有反映程序的局部性,因为最先调入主存的页面,

2015-06-30 19:05:29 6639

原创 const与#define的区别

const是一个关键字,const修饰的内容不可改变。宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段二者区别const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。建议使用cons

2015-06-30 15:41:06 551

原创 网络中常见的Ping命令用什么协议完成

Ping命令用ICMP实现的,ICMP是Internet控制消息协议,用于IP主机,路由器之间传递消息。控制消息是指网络通不通,主机是否可达,路由器是否可用等网络本身的消息,这些控制消息并不传输用户数据。Ping的原理是:向指定IP发送一定长度的数据包,按照约定,若指定IP存在的话,会返回同样大小的数据包,若没有在特定时间返回就是超时,就认为指定IP不存在。但是由于防火墙会屏蔽ICMP

2015-06-30 10:14:04 6201

原创 TCP三次握手,四次挥手

图解三次握手四次挥手的过程,以及需要三次握手四次挥手的原因程序员面试常考的网络题目

2015-06-29 21:13:15 2115 2

原创 OSI七层网络协议,网络协议的层次结构

网络协议的层次结构:详细介绍了OSI七层网络模型每一层的相关协议以及相应的设备以及与TCP/IP四层网络模型的层次对应关系1. OSI七层模型:OSI(Open System Interconnect),即开放式系统互联第一层:物理层作用:透明地传输比特流。为数据端设备提供传送数据通路、传输数据重要协议:RJ45, Ethernet, 802.3, 802.5常见设备:集线器、发送器、接收器、电缆、连接器和中继器数据单元:比特流 第二层:数据链路层作用:建立

2015-06-29 17:19:28 3209

转载 双向链表的实现

首先编写头文件,头文件里做相关的定义和声明,DList.h内容如下:[cpp] view plaincopy#ifndef DList_H  #define DList_H  typedef  int Item;  typedef struct Node * PNode;  typedef PNode Position;  /*定

2015-06-29 10:46:55 379

原创 进程 线程 作业 管程 小结

进程,线程,作业,管程的概念以及区别联系

2015-06-28 16:20:18 761

原创 计算机等级考试四级计算机网络(操作系统部分)

计算机等级考试四级计算机网络注意:此题为最新考试大纲题第一套

2015-06-27 23:12:57 1539 1

原创 字符串的全排列详解

字符串的全排列例如:输入字符串abc,则输出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba解析:典型的递归思路 step1:求出所有可能出现在第一个位置的字符。 step2:固定第一个字符,求后面所有字符的全排列改进方案:全排列的实质就是就是从第一个字符起每个字符分别与它后面的字符交换,倘若没有重复,则没有问题。如果有重复,就会出现多余的比较,进而出现多余的排列

2015-06-27 18:30:03 993

空空如也

空空如也

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

TA关注的人

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