明天你好的专栏

分享学习的点点滴滴,欢迎交流。

求二叉树叶子节点的最浅深度

下面给出一个例子: 对于该二叉树而言,叶子节点有C、D两个,C节点的深度为3,D节点的深度为2,那么最浅叶子节点的深度为2。 实现代码如下: /* 二叉树存储结构定义*/ typedef char TypeData; typedef struct BiTreeNode { ...

2015-10-31 14:08:11

阅读数:865

评论数:0

求二叉树的深度代码实现

用递归的方案实现: /* 求二叉树的深度 */ int getDepthBiTree(BITREENODE* T) { int lDepth = 0, rDepth = 0; if(T == NULL) { return 0; } els...

2015-10-30 23:40:07

阅读数:2595

评论数:0

线索二叉树详解以及代码实现

参照《大话数据结构》188到194页。 一、二叉树的线索存储结构定义 /* 二叉树线索存储结构定义 Link = 0,代表指向左右孩子的指针 Thread= 1 代表指向前驱或后继的线索*/ typedef enum{ Link, Thread} PointerTag; ...

2015-10-30 14:28:22

阅读数:903

评论数:0

C++设计模式(一) 工厂模式

一个运算类(Operator)是基类,派生出加法类(OperatorAdd),减法类(OperatorSub),乘法类(OperatorMul),除法类(OperatorDiv),那么如果想再添加一个开根号运算,或者是一个阶乘运算,那么只用再继承两个类就可以了,同时在类OperatorFactor...

2015-10-27 15:54:00

阅读数:418

评论数:0

逆波兰表达式C++代码实现

当我们输入一个数学表达式,是中缀表达式,我们首先转换为后缀表达式(逆波兰表达式),然后再进行求值。 在《大话数据结构》的104-100页有详细的介绍,下面是我理解之后的代码实现。 代码思路: (1)首先对输入的中缀表达式合法性进行判断,bool isStringLegal(const...

2015-10-26 18:34:09

阅读数:2899

评论数:0

华为机试:输入法查找

#include #include #include #include #include using namespace std; /* 把输入的每一行的编码解析为拼音和汉字 */ void parse_raw(string &str, string &hanzi, ...

2015-10-12 10:18:12

阅读数:928

评论数:0

华为机试:过滤重复单词

#include #include #include #include #include #include #include #include using namespace std; int main() { char str[200] = { 0 }; char str...

2015-10-12 10:15:53

阅读数:1661

评论数:1

华为机试:查找字符串

#include #include #include #include #include #include #include #include #include using namespace std; int main() { string s , p; i...

2015-10-12 10:14:43

阅读数:631

评论数:0

华为OJ试题:输入n个整数,输出其中最小的k个

述 输入n个整数,输出其中最小的k个。详细描述:接口说明原型:bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);输入参数:     unsignedint ...

2015-10-08 10:56:38

阅读数:734

评论数:0

剑指offer:不用加减乘除做加法

题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号 class Solution { public: int Add(int num1, int num2) { int sum = 0, flow = 0; ...

2015-10-06 21:03:05

阅读数:362

评论数:0

剑指offer:孩子们的游戏(圆圈中最后剩下的数)

题目描述 每年六一儿童节,NowCoder都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为NowCoder的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m的那个小朋友要出列...

2015-10-06 20:45:03

阅读数:307

评论数:0

剑指offer:翻转单词顺序列

题目描述 JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该...

2015-10-06 20:22:44

阅读数:336

评论数:0

剑指·offer:和为S的两个数字

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。  输出描述: 对应每个测试案例,输出两个数,小的先输出。 class Solution { public: vecto...

2015-10-06 18:59:44

阅读数:278

评论数:0

剑指offer:判断是否是平衡二叉树

这种写法,效率比较高,每一个节点只访问一次。 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(...

2015-10-06 18:37:39

阅读数:410

评论数:0

剑指offer:数字在排序数组中出现的次数

注意:在写代码的时候注意细节,注意细节,注意细节,重要的事情说三遍!!! #include #include #include #include #include using namespace std; class Solution { public: int Get...

2015-10-06 16:11:39

阅读数:317

评论数:0

剑指offer:两个链表的第一个公共结点输入两个链表,找出它们的第一个公共结点。

输入两个链表,找出它们的第一个公共结点。如果没有公共节点,则输出NULL; struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; ListNode*...

2015-10-06 15:20:43

阅读数:553

评论数:0

剑指offer:第一个只出现一次的字符位置

题目描述 在一个字符串(1 #include #include #include #include #include using namespace std; class Solution { public: int FirstNotRepeatingChar(s...

2015-10-06 14:48:40

阅读数:337

评论数:0

剑指offer:栈的压入弹出序列

如何判断一个序列可能是另外一个序列的压入弹出序列呢? #include #include #include using namespace std; bool isPopQueue(int* a, int* b, int len) { /* 入参判断 */ if(a == NULL |...

2015-10-06 00:54:19

阅读数:296

评论数:0

tinyxml源码的使用

最近一直在看tinyxml源码,虽然这个代码量不是很大,但是把C++能够用到的东西都用上了,看了整整一天,才算看的差不多了,给出我的几点建议。 一、几个类的理解,一定要沉下心去看(盗网上的一张图) 二、看这个源码的建议 (1)先大概的看以下这几个类,从TiXmlBase看起,再看TiXmlNo...

2015-10-04 23:42:00

阅读数:471

评论数:0

为什么要用Lua脚本呢?(一)

Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用。 Lua与其它脚本语言相比,其突出优势在于: 1.  可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者 C代码扩展,Lua的...

2015-10-04 15:10:47

阅读数:2251

评论数:0

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