自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2015-07-12 21:11:44 425

原创 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 637

原创 面试题小结(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 1239

原创 智力题小结(5)

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

2015-07-11 16:59:37 1288

原创 智力题小结(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 1140

原创 智力题小结(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 1241

原创 智力题小结(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 1231

原创 智力题小结(1)

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

2015-07-10 18:26:10 1192

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

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

2015-07-10 10:22:37 719

原创 MSP430G2553电子时钟实验

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

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

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

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

2015-07-09 22:28:13 690

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

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

2015-07-09 17:01:28 952

原创 六:二叉树中第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 2015

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

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

2015-07-07 20:15:39 729

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

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

2015-07-07 14:52:42 883

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

求树的深度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 720

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

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

2015-07-06 16:56:52 333

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

二叉树的性质 性质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 496

空空如也

空空如也

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

TA关注的人

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