题目:用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除结点的功能。队列的声明如下:template class CQueue{public: CQueue(void); ~CQueue(void); // 在队列末尾添加一...
分类:
其他好文 时间:
2015-07-21 12:00:18
阅读次数:
118
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历的序列{4,7,2,1,5,3,8,6},则重建出下图所示的二叉树并输出它的头结点。分析:前序遍历的第一个元素就是根...
分类:
其他好文 时间:
2015-07-21 10:30:03
阅读次数:
126
题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路把一个整数减去1,再和原整数做与运算,会把整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多次这样的操作。...
分类:
其他好文 时间:
2015-07-20 23:34:41
阅读次数:
125
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断该数组中是否有该整数。
分类:
编程语言 时间:
2015-07-20 23:23:50
阅读次数:
143
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路:1、方法1:先排序,然后找中位数;时间复杂度O(nlogn)2、方法2:基于Partition函数...
分类:
编程语言 时间:
2015-07-20 21:11:12
阅读次数:
159
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路用栈来模拟队列。我们首先插入一个元素a到stack1中,再压入两个元素bc,此时栈中有元素abc,其中c位于栈顶,而stack2仍然为空。我们试着删除一个元素。按照队列先进先出的原则,我们应该先删除元素a。元素a存放在stack1中且不在栈顶,因此不能直接删除。注意到stack2还未使用,我们把stack1中...
分类:
其他好文 时间:
2015-07-20 16:17:14
阅读次数:
103
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。...
分类:
其他好文 时间:
2015-07-20 12:59:00
阅读次数:
139
题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。...
分类:
编程语言 时间:
2015-07-19 20:16:34
阅读次数:
174
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1;当n = 1 时, 只有一种跳法,即1阶跳,即Fib(1) = 1;当n = 2 时, 有两种跳的方式,一阶跳和二阶跳,即Fib(2) = Fib(1) + Fib(0) = 2;当n = 3 时,有三种跳的方式,...
分类:
其他好文 时间:
2015-07-19 16:32:43
阅读次数:
226
题目:
输入两棵树A和B,判断B是不是A的子结构
例如:右边的便是左边的子结构 8 4
/ \ / 4 9 2 5
/ 2 5
二叉树我们很容易会想到递...
分类:
其他好文 时间:
2015-07-19 16:27:43
阅读次数:
96