<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[day__day__up的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/day__day__up</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; day__day__up]]></copyright><item><title><![CDATA[单例模式的C++实现]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46853285</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46853285</guid><author>day__day__up</author><pubDate>Sun, 12 Jul 2015 21:11:44 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7460019
单例模式也称为单件模式、单子模式，可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例，并提供一个访问它的全局访问点，该实例被所有程序模块共享。有很多地方需要这样的功能模块，如系统的日志输出，GUI应用必须是单鼠标，MODEM的联接需要一条且只需要一条电话线，操作系统只能]]></description><category></category></item><item><title><![CDATA[string类的实现]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46852943</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46852943</guid><author>day__day__up</author><pubDate>Sun, 12 Jul 2015 20:28:50 +0800</pubDate><description><![CDATA[class String
{
public:
     String(const char*str = NULL);// 普通构造函数
     String(const String &other);    // 拷贝构造函数
     ~ String(void);    // 析构函数
     String & operate =(const String &other);//]]></description><category></category></item><item><title><![CDATA[面试题小结（6）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46844861</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46844861</guid><author>day__day__up</author><pubDate>Sat, 11 Jul 2015 21:41:42 +0800</pubDate><description><![CDATA[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先生:你们能从已知的点数或花色中推知这张牌是什]]></description><category></category></item><item><title><![CDATA[智力题小结（5）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46843057</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46843057</guid><author>day__day__up</author><pubDate>Sat, 11 Jul 2015 16:59:37 +0800</pubDate><description><![CDATA[1. 一个巨大的圆形水池，周围布满了老鼠洞。猫追老鼠到水池边，老鼠未来得及进洞就掉入水池里。猫继续沿水池边缘企图捉住老鼠（猫不入水）。已知V猫=4V鼠。问老鼠是否有办法摆脱猫的追逐？
答案：
第一步：游到水池中心。 
第二步：从水池中心游到距中心R/4处，并始终保持鼠、水池中心、猫在一直线上。

第三步：沿与中心相反方向的直线游3R/4就可以到达水池边，而猫沿圆周到达那里需要3.14R，]]></description><category></category></item><item><title><![CDATA[智力题小结（4）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46841231</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46841231</guid><author>day__day__up</author><pubDate>Sat, 11 Jul 2015 13:13:35 +0800</pubDate><description><![CDATA[1. 某城市发生了一起汽车撞人逃跑事件，该城市只有两种颜色的车,蓝15%绿85%，事发时有一个人在现场看见了，他指证是蓝车，但是根据专家在现场分析,当时那种条件能看正确的可能性是80%那么,肇事的车是蓝车的概率到底是多少?
答案：
设看到蓝车为事件A
看到绿车为事件B
看正确为事件C
看错误为事件D
所求为发生事件C的情况下A发生
P（C|A）=P（CA）/P（A）=P(A)P（C|]]></description><category></category></item><item><title><![CDATA[智力题小结（3）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46836069</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46836069</guid><author>day__day__up</author><pubDate>Fri, 10 Jul 2015 23:08:08 +0800</pubDate><description><![CDATA[1.有7克、2克砝码各一个，天平一只，如何只用这些物品三次将140克的盐分成50、90克各一份？
答案：
第一步：把140克盐分成两等份，每份70克。
第二步：把天平一边放上2+7克砝码，另一边放盐，这样就得到9克和61克分开的盐。
第三步：将9克盐和2克砝码放在天平一边，另一边放盐，这样就得到11克和50克。于是50和90就分开了。
 
2. 国王招来100个囚犯，对他们说：你们犯的]]></description><category></category></item><item><title><![CDATA[智力题小结（2）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46834781</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46834781</guid><author>day__day__up</author><pubDate>Fri, 10 Jul 2015 20:36:39 +0800</pubDate><description><![CDATA[1.你在一幢100层大楼下，有21根电线线头标有数字1..21。这些电线一直延伸到大楼顶，楼顶的线头处标有字母A..U。你不知道下面的数字和上面的字母的对应关系。你有一个电池，一个灯泡，和许多很短的电线。如何只上下楼一次就能确定电线线头的对应关系？
答案：在下面把2,3连在一起，把4到6全连在一起，把7到10全连在一起，等等，这样你就把电线分成了6个“等价类”，大小分别为1, 2, 3, 4, ]]></description><category></category></item><item><title><![CDATA[智力题小结（1）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46833965</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46833965</guid><author>day__day__up</author><pubDate>Fri, 10 Jul 2015 18:26:10 +0800</pubDate><description><![CDATA[1．有两根不均匀分布的香，香烧完的时间是一个小时，你能用什么方法来确定一段15分钟的时间？
 答： 香a点燃一头，香b点燃两头。等香b烧完时，时间过去了30分钟。再把香a剩下的另一头也点燃。从这时起到a烧完的时间就是15分钟。
 
2．一个经理有三个女儿，三个女儿的年龄加起来等于13，三个女儿的年龄乘起来等于经理自己的年龄，有一个下属已知道经理的年龄，但仍不能确定经理三个女儿的年龄，这时经理]]></description><category></category></item><item><title><![CDATA[九：二叉搜索树与双向链表（二叉搜索树转为有序双向链表）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46827265</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46827265</guid><author>day__day__up</author><pubDate>Fri, 10 Jul 2015 10:22:37 +0800</pubDate><description><![CDATA[问题描述：
输入一棵二叉搜索树，现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中，不能创建任何新的结点，只能调整树中的结点指针的指向来实现。
 
解析：
借助二叉树中序遍历，因为中序遍历二叉搜索树的特点就是从小到大访问结点。当遍历访问到根结点时，假设根结点的左侧已经处理好，只需将根结点与上次访问的最近结点（左子树中最大值结点）的指针连接好即可。进而更新当前链表的最后一个结点指针。
 
递归算法：
（1）中序遍历。
（2）原先指向左子结点的指针调整为链表中指向前一个结点的指针，原先指向右子结点]]></description><category></category></item><item><title><![CDATA[MSP430G2553电子时钟实验]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46823055</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46823055</guid><author>day__day__up</author><pubDate>Thu, 09 Jul 2015 23:18:19 +0800</pubDate><description><![CDATA[用msp430g2553控制1602液晶显示时间，并可以通过按键设置时间，我做了正计时和倒计时两种模式
/*********************************************************************
msp430g2553与1602引脚连接情况
* PIN1 --> 地
* PIN2 --> VCC（一定要接+5V）
* PIN3 -->仿真时悬空，实际电路 2K电阻-->地 (电阻可以是500-2k的，改变电阻可以改变字符显示的亮度，电阻接不好会导致什么都不显]]></description><category></category></item><item><title><![CDATA[八：二叉搜索树的后序遍历]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46822625</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46822625</guid><author>day__day__up</author><pubDate>Thu, 09 Jul 2015 22:28:13 +0800</pubDate><description><![CDATA[问题描述：
输入一个整数数组，判断该数组是不是某二叉查找树的后序遍历的结果。如果是返回true，否则返回false。

解析：
根据后序遍历的定义，如果一个序列是二叉树的后续遍历的结果，那么我们不难得出，序列的最后一个节点必定是二叉树的根节点，除了根节点外，序列中前一部分是二叉树的左子树的节点，后面一部分是二叉树的右子树的节点。同理，左右子树的遍历结果也具有一样的特点。]]></description><category></category></item><item><title><![CDATA[七：重建二叉树（根据先序遍历（或者后序遍历）和中序遍历重建二叉树）]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46819267</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46819267</guid><author>day__day__up</author><pubDate>Thu, 09 Jul 2015 17:01:28 +0800</pubDate><description><![CDATA[对于一颗二叉树，可以根据先序遍历（或者后序遍历）和中序遍历（树中不含重复的数字）重新还原出二叉树。

解析：
1.	先序遍历序列的第一个元素必定是根节点，可以由此获取二叉树的根节点。

2.	根据根节点，在中序遍历序列中查找该节点，由中序遍历的性质可知，中序遍历中该根节点左边的序列必定在根节点的左子树中，而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。

3.	找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树，典型的递归思想。]]></description><category></category></item><item><title><![CDATA[六：二叉树中第k层节点个数与二叉树叶子节点个数]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46795655</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46795655</guid><author>day__day__up</author><pubDate>Tue, 07 Jul 2015 23:04:34 +0800</pubDate><description><![CDATA[二叉树中第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为根节点的子树叶子节点数]]></description><category></category></item><item><title><![CDATA[五：二叉树中和为某一直的路径]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46793741</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46793741</guid><author>day__day__up</author><pubDate>Tue, 07 Jul 2015 20:15:39 +0800</pubDate><description><![CDATA[当用前序遍历的方式访问到某一节点时，我们把这个节点添加到路径上，并累加该节点的值，如果该节点为叶子节点并且路径中节点值的和刚好等于输入的整数，则当前的路径符合要求，我们把它打印出来。如果当前节点不是叶节点，则继续访问它的子节点。当前节点访问结束后，递归函数将自动回到它的父节点。因此我们在函数退出之前要在路径上删除当前节点，并减去当前节点的值，以确保返回父节点时路径刚好是从根节点到父节点的路径。不难看出保存路径的数据结构实际上是一个栈，因为路径要与递归调用状态一致，而递归调用的本质就是一个压栈和出栈的过程。]]></description><category></category></item><item><title><![CDATA[四：二叉树的镜像递归非递归求解]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46789417</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46789417</guid><author>day__day__up</author><pubDate>Tue, 07 Jul 2015 14:52:42 +0800</pubDate><description><![CDATA[二叉树的镜像递归非递归求解

1. 递归求解：先序遍历树的每个结点，若遍历到的结点有子结点，则交换它的两个子结点。

2. 非递归求解（借助栈）借助于栈，先交换两棵子树，再求完一棵子树的镜像后在求另一棵子树的镜像（纵向，深度优先）

3. 非递归求解（借助队列）借助于队列以用广度优先的顺序遍历一遍实现逐层镜像（横向，广度优先）]]></description><category></category></item><item><title><![CDATA[三：求二叉树的深度以及判断二叉树是否平衡]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46788205</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46788205</guid><author>day__day__up</author><pubDate>Tue, 07 Jul 2015 13:20:55 +0800</pubDate><description><![CDATA[求树的深度
int TreeDepth(BinaryTreeNode* pRoot)  
{  
   if (pRoot == NULL)  
       return 0;  


   int nLeftDepth = TreeDepth(pRoot->m_pLeft);  

   int nRightDepth = TreeDepth(pRoot->m_pRight)]]></description><category></category></item><item><title><![CDATA[二：二叉树的递归与非递归遍历]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46776511</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46776511</guid><author>day__day__up</author><pubDate>Mon, 06 Jul 2015 16:56:52 +0800</pubDate><description><![CDATA[以根结点的访问顺序纷飞前，中，后序


1.
前序遍历：


递归：
void PreOrder(BiTree *root)

{
   if(root!=NULL)
    {
       coutdata
        PreOrder(root->lchild);
        PreOrder(root->rchild);
    }
}
 
非]]></description><category></category></item><item><title><![CDATA[一：二叉树的性质及创建]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46776161</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46776161</guid><author>day__day__up</author><pubDate>Mon, 06 Jul 2015 16:31:45 +0800</pubDate><description><![CDATA[二叉树的性质
 
性质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 =]]></description><category></category></item><item><title><![CDATA[死锁的产生与解决]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46700203</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46700203</guid><author>day__day__up</author><pubDate>Tue, 30 Jun 2015 20:44:39 +0800</pubDate><description><![CDATA[死锁：所谓死锁，是指在多道程序系统中，指两个或两个以上的进程在执行过程中，由于竞争资源或者由于彼此通信而造成的一种阻塞的现象，若无外力作用，它们都将无法推进下去。产生死锁的主要原因有两个：一是竞争资源；二是多道程序运行时，进程推进顺序不合理。
 
1. 产生死锁的四个必要条件：
（1）互斥条件：指进程对所分配到的资源进行独占且排它性使用，即在一段时间内某资源只由一个进程占用。如果此时还有其它]]></description><category></category></item><item><title><![CDATA[LRU（Least Recently Used）最近最少使用页面置换算法]]></title><link>https://blog.youkuaiyun.com/day__day__up/article/details/46699389</link><guid>https://blog.youkuaiyun.com/day__day__up/article/details/46699389</guid><author>day__day__up</author><pubDate>Tue, 30 Jun 2015 19:33:59 +0800</pubDate><description><![CDATA[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
时间中]]></description><category></category></item></channel></rss>