<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wefun的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wefun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wefun]]></copyright><item><title><![CDATA[编程求解，输入两个整数n和m,从数列1,2,3，……n中随意取几个数，使其和等于m。要求将所有的可能组合列出来（背包问题求解）]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79403368</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79403368</guid><author>wefun</author><pubDate>Wed, 28 Feb 2018 17:40:04 +0800</pubDate><description><![CDATA[题目：输入两个整数n和m,从数列1,2,3，……n中随意取几个数，使其和等于m。要求将所有的可能组合列出来（背包问题求解）解法：运用递归的方法来进行处理，首先我先解释一下我的理解假如我们取n=10，m=8；我们列出　１　２　３　４　５　６　７　８　９　１０我们建立一个选择数组，数组的长度即为ｎ的大小数组里的每个元素与１．．ｎ　一　一　对应数组元素的表示只有两种情况：１代表选择了其对应的数，０则代表...]]></description><category></category></item><item><title><![CDATA[输入一个表示整数的字符串，把该字符串转换成整数并输出。例如输入字符串"345"，则输出整数345]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79401624</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79401624</guid><author>wefun</author><pubDate>Wed, 28 Feb 2018 16:02:05 +0800</pubDate><description><![CDATA[题目：输入一个表示整数的字符串，把该字符串转换成整数并输出。例如输入字符串&quot;345&quot;，则输出整数345。1：判断是否为空字符串2：判断正负号3：判断是否有非法输入最后将出来的数字不断乘以10再加上后面数字不断循环下去#include &quot;stdafx.h&quot;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;string&amp;gt;
using namespace std;
enu...]]></description><category></category></item><item><title><![CDATA[输入一颗二元树，从上往下按层打印树的每个结点，同一层中按照从左往右的顺序打印。]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79322733</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79322733</guid><author>wefun</author><pubDate>Tue, 13 Feb 2018 18:19:30 +0800</pubDate><description><![CDATA[题目：输入一颗二元树，从上往下按层打印树的每个结点，同一层中按照从左往右的顺序打印。   例如输入  8  / \ 6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11解法：我们利用队列来解决这个问题。对列：队列是一种特殊的线性表，特殊之处在于它只允许在表的前端（front）进行删除操作，而在表的后端（rear）进行插入操作，和栈一样，队列是一种操作受限制的线性表。进行插入操作...]]></description><category></category></item><item><title><![CDATA[输入一颗二元查找树，将该树转换为它的镜像]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79322720</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79322720</guid><author>wefun</author><pubDate>Tue, 13 Feb 2018 18:16:06 +0800</pubDate><description><![CDATA[输入一颗二元查找树，将该树转换为它的镜像，即在转换后的二元查找树中，左子树的结点都大于右子树的结点。例如给定下列的输入：然后有如下的输出：解法一：递归首先交换根节点8的左右子树，10，6的左右子树顺序不变，然后交换根节点6的左右子节点，直到左右子节点为空为止。代码：BSTreeNode*digui(BSTreeNode*pRoot)
{
    if(pRoot!=NULL)
    {
    ...]]></description><category></category></item><item><title><![CDATA[求二叉树中节点的最大距离]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79322714</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79322714</guid><author>wefun</author><pubDate>Tue, 13 Feb 2018 18:13:59 +0800</pubDate><description><![CDATA[问题定义如果我们把二叉树看成一个图，父子节点之间的连线看成是双向的，我们姑且定义&quot;距离&quot;为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点，通过根节点，再到右子树的最深节点。情况B: 路径不穿过根节点，而是左子树或右子树的最大距离路径，取其大者。只需要计算这两个情况的路径距离，并取其大者，就是该二叉树的...]]></description><category></category></item><item><title><![CDATA[判断整数序列是不是二元查找树的后序遍历结果]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/79322699</link><guid>https://blog.youkuaiyun.com/wefun/article/details/79322699</guid><author>wefun</author><pubDate>Tue, 13 Feb 2018 18:12:36 +0800</pubDate><description><![CDATA[判断整数序列是不是二元查找树的后序遍历结果题目：输入一个整数数组，判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true，否则返回false。例如输入5、7、6、9、11、10、8，由于这一整数序列是如下树的后序遍历结果：8/ \6 10/ \ / \5 7 9 11因此返回true。如果输入7、4、6、5，没有哪棵树的后序遍历的结果是这个序列，因此返回false。说完题目要求，我们就来...]]></description><category></category></item><item><title><![CDATA[颠倒一个链表的顺序 C++]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/78678811</link><guid>https://blog.youkuaiyun.com/wefun/article/details/78678811</guid><author>wefun</author><pubDate>Thu, 30 Nov 2017 20:01:57 +0800</pubDate><description><![CDATA[首先我们定义一个头结点：

struct Node{
	int data;
	Node*next;
};接下来我们写一个函数来创建一个链表：


//a是一个数组，n代表数组元素的个数
Node*createLinkList(int a[],int n)
{
    if(a==NULL||n==0)
        return NULL;
    Node*L,*T=NULL;
  ]]></description><category></category></item><item><title><![CDATA[关于两个链表是否相交的思路总结]]></title><link>https://blog.youkuaiyun.com/wefun/article/details/78663065</link><guid>https://blog.youkuaiyun.com/wefun/article/details/78663065</guid><author>wefun</author><pubDate>Wed, 29 Nov 2017 11:43:19 +0800</pubDate><description><![CDATA[最初遇到这道题是我在尝试着做一些面试题的时候，面试题的题目不仅要求你去解决一个问题，还要求你解决问题的时间和空间。这就让我们不得不思考更好的算法。
下面是题目描述：给出两个单向链表的头指针比如h1、h2，判断这两个链表是否相交？这是来自编程之美上的微软亚院的一道面试题目。
1）直接循环判断第一个链表的每个节点是否在第二个链表中。但，这种方法的时间复杂度为O(Length(h1) * Lengt]]></description><category></category></item></channel></rss>