- 博客(25)
- 资源 (23)
- 收藏
- 关注
原创 求二叉树叶子节点的最浅深度
下面给出一个例子:对于该二叉树而言,叶子节点有C、D两个,C节点的深度为3,D节点的深度为2,那么最浅叶子节点的深度为2。实现代码如下:/* 二叉树存储结构定义*/typedef char TypeData;typedef struct BiTreeNode{ TypeData data; struct BiTreeNode *lchild, *r
2015-10-31 14:08:11 2957
原创 求二叉树的深度代码实现
用递归的方案实现:/* 求二叉树的深度 */int getDepthBiTree(BITREENODE* T){ int lDepth = 0, rDepth = 0; if(T == NULL) { return 0; } else { lDepth = getDepthBiTree(T->lchild);
2015-10-30 23:40:07 6517
原创 线索二叉树详解以及代码实现
参照《大话数据结构》188到194页。一、二叉树的线索存储结构定义/* 二叉树线索存储结构定义 Link = 0,代表指向左右孩子的指针 Thread= 1 代表指向前驱或后继的线索*/typedef enum{ Link, Thread} PointerTag;typedef char TypeData;typedef struct BiTreeNode{
2015-10-30 14:28:22 5219 4
原创 C++设计模式(一) 工厂模式
一个运算类(Operator)是基类,派生出加法类(OperatorAdd),减法类(OperatorSub),乘法类(OperatorMul),除法类(OperatorDiv),那么如果想再添加一个开根号运算,或者是一个阶乘运算,那么只用再继承两个类就可以了,同时在类OperatorFactory中加入两个if分支就可以,不会影响前面的运算,更好的模块化。代码实现如下:
2015-10-27 15:54:00 561
原创 逆波兰表达式C++代码实现
当我们输入一个数学表达式,是中缀表达式,我们首先转换为后缀表达式(逆波兰表达式),然后再进行求值。在《大话数据结构》的104-100页有详细的介绍,下面是我理解之后的代码实现。代码思路:(1)首先对输入的中缀表达式合法性进行判断,bool isStringLegal(const char* str);函数实现。(2)然后把中缀表达式转换为后缀表达式。(3)根据后缀表
2015-10-26 18:34:09 8024 1
原创 华为机试:输入法查找
#include #include #include #include #include using namespace std;/* 把输入的每一行的编码解析为拼音和汉字 */void parse_raw(string &str, string &hanzi, string &pinyin){ const char *p = str.c_str(); const char
2015-10-12 10:18:12 1327
原创 华为机试:过滤重复单词
#include #include #include #include #include #include #include #include using namespace std;int main(){ char str[200] = { 0 }; char strbak[200] = { 0 }; char *token = NULL; map wordMap
2015-10-12 10:15:53 1934 1
原创 华为机试:查找字符串
#include #include #include #include #include #include #include #include #include using namespace std;int main(){ string s , p; int location = 0; int count = 0; cin >> s >
2015-10-12 10:14:43 821
原创 华为OJ试题:输入n个整数,输出其中最小的k个
述输入n个整数,输出其中最小的k个。详细描述:接口说明原型:bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);输入参数: unsignedint uiInputNum //输入整数个数int * pInputArray //输入整数数组unsig
2015-10-08 10:56:38 1189
原创 剑指offer:不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号class Solution {public: int Add(int num1, int num2) { int sum = 0, flow = 0; do { sum = num1 ^ num2;
2015-10-06 21:03:05 538
原创 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
题目描述每年六一儿童节,NowCoder都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为NowCoder的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1
2015-10-06 20:45:03 534
原创 剑指offer:翻转单词顺序列
题目描述JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?#in
2015-10-06 20:22:44 561
原创 剑指·offer:和为S的两个数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述:对应每个测试案例,输出两个数,小的先输出。class Solution {public: vector FindNumbersWithSum(vector array,int sum) {
2015-10-06 18:59:44 423
原创 剑指offer:判断是否是平衡二叉树
这种写法,效率比较高,每一个节点只访问一次。struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};class Solution {public: bool Is
2015-10-06 18:37:39 634
原创 剑指offer:数字在排序数组中出现的次数
注意:在写代码的时候注意细节,注意细节,注意细节,重要的事情说三遍!!!#include #include #include #include #include using namespace std;class Solution {public: int GetNumberOfK(vector data ,int k) { int star
2015-10-06 16:11:39 520
原创 剑指offer:两个链表的第一个公共结点输入两个链表,找出它们的第一个公共结点。
输入两个链表,找出它们的第一个公共结点。如果没有公共节点,则输出NULL;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};ListNode* FindFirstCommonNode(ListNode *pHead1, ListNode *pH
2015-10-06 15:20:43 993
原创 剑指offer:第一个只出现一次的字符位置
题目描述在一个字符串(1#include #include #include #include #include using namespace std;class Solution {public: int FirstNotRepeatingChar(string str) { int numTimes[256] = {0}; int
2015-10-06 14:48:40 484
原创 剑指offer:栈的压入弹出序列
如何判断一个序列可能是另外一个序列的压入弹出序列呢?#include #include #include using namespace std;bool isPopQueue(int* a, int* b, int len){ /* 入参判断 */ if(a == NULL || b == NULL || len <= 0) return false; int i
2015-10-06 00:54:19 457
原创 tinyxml源码的使用
最近一直在看tinyxml源码,虽然这个代码量不是很大,但是把C++能够用到的东西都用上了,看了整整一天,才算看的差不多了,给出我的几点建议。一、几个类的理解,一定要沉下心去看(盗网上的一张图)二、看这个源码的建议(1)先大概的看以下这几个类,从TiXmlBase看起,再看TiXmlNode,最后看继承的那个类,主要看类中有哪些成员函数以及成员变量。(2)从XmlTest.
2015-10-04 23:42:00 956
原创 为什么要用Lua脚本呢?(一)
Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用。Lua与其它脚本语言相比,其突出优势在于:1. 可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者 C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、java、fortran、Smalltalk
2015-10-04 15:10:47 5949
原创 lua脚本的基本语法(二)
1.语法约定 Lua语句用分号结尾,不过如果不写分号,Lua也会自己判断如何区分每条语句 如: a=1 b=a*2 --这样写没有问题,但不太好看。 建议一行里有多个语句时用分号隔开 变量名、函数名之类的命名规则与C语言一样:由字母,下划线和数字组成,但第一个字符不能是数字。并且不能和Lua的保留字相同。 Lua是
2015-10-04 00:17:25 7843
原创 ubuntu15.04编译lua源码
(1)从官网下载LUA源码下载网址:http://www.lua.org/ftp/lua-5.3.1.tar.gz(2)使用tar axvf lua-5.3.1.tar.gz加压文件 然后使用cd lua-5.3.1/ 进入文件夹,接着执行ls命令,可以看到如下文件nii@mmch:~/code/LUA/lua-5.3.1$ lsdoc Makefile README
2015-10-03 23:29:05 1320
原创 lua.c:80:31: fatal error: readline/readline.h: No such file or directory
在ubuntu15.04环境下编译lua5.3.1源码的时候,出现如下错误:nii@mmch:~/code/LUA/lua-5.3.1$ make linuxcd src && make linuxmake[1]: Entering directory '/home/nii/code/LUA/lua-5.3.1/src'make all SYSCFLAGS="-DLUA_USE_L
2015-10-03 23:01:26 5194 1
转载 如何巧妙应对压力面试
作为管理者,注定要承受巨大的压力。因此应聘管理层,面对精心设计的压力测试便是顺理成章的。但那一刻,你知道吗?又怎么应对呢? 如何巧妙应对压力面试? 文 / 景素奇 如今竞争无处不在,无形的压力有很多,职场压力更大。而有的压力是人为给的,比如:职场应聘时,会遭遇面试官刻意的压力面试。面试官为什么要刻意给应聘者压力呢?作为应聘者该如何应对呢? 为什么要进行压力测
2015-10-01 21:26:34 1089
原创 剑指offer:打印1到最大的n位数
我没有按照剑指offer书上给的思路,自己写了一种实现方式:#include #include #include using namespace std;void printIncreaseNum(const int n){ char* pdata = NULL ; int i = 0 , count = 0; int wei = 0; int len = 0 , j =
2015-10-01 00:13:29 421
基于Lire库搜索相似图片源码
2018-07-22
Zookeeper客户端Curator Framework使用代码
2018-05-05
cas单点登录测试配置
2018-04-29
Android的APp作为Socket服务端与pc通过USB通信
2016-05-14
Android作为Socket服务端与pc通过USB通信
2016-05-14
java swing入门教程
2016-03-16
福星阅读器
2016-03-15
局域网QQ聊天项目
2015-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人