探讨:用两个栈实现一个队列(我作为面试官的小结)
两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2
两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2
代码如下所示,不足之处,还望指正!实现代码如下:// BinaryTree.cpp : 定义控制台应用程序的入口点。//C++实现链式二叉树,在二叉树中找出和为某一值的所有路径#include "stdafx.h"#include#include#include using namespace st
实现代码如下:采用递归形式和非递归形式实现斐波那契数列实现代码如下:#include "stdafx.h"#include using namespace std;//递归形式的斐波那契数列int fibonacciRecursion(int n){ if (n == 1 || n ==2) {re
PS:如有不足之处,还望指正!实现代码如下:// tentotwo.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include #include using namespace std;void GetPrimer(int n, vector i ::iterat
已知两个链表list1和list,2,各自非降序排列,将它们合并成另外一个链表list3,并且依然有序,要求保留所有节点。实现过程中,list1中的节点和list2中的节点都转移到了list3中,注意泛型的友元函数的用法。程序如有不足之处,还望指正!!!定义List类实现代码如下:#include
看到一道题目:vs2010中,如何输出当前文件路径和源文件当前行号。不知道,于是立刻上网搜,于是找到了答案:总结一下,有用的时候就直接拿来用了,据说它们是系统预定义宏,但这种宏并不是在某个文件中定义的,而是由编译器定义的。实现代码如下: cout << __LINE__ <<
可以使用atexit()函数注册一个函数,代码如下:实现代码如下:#include "stdafx.h"#include using namespace std;//int _onexit(void (*function)(void)); //这句可以要也可以不要void f1(){ cout &l
【什么是Bit-map】 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,
恐怕现在用过电脑的人,一定都知道大部分带文本编辑功能的软件都有一个快捷键ctrl+f 吧(比如word)。这个功能主要来完成“查找”,“替换”和“全部替换”功能的,其实这就是典型的模式匹配的应用,即在文本文件中查找串。1.模式匹配模式匹配的模型大概是这样的:给定两个字符串变量S和P,其中S成为目标串
串的定位操作通常称作串的模式匹配,是各种处理系统中的最重要操作之一。模式匹配最朴素的算法是回溯法,即模式串跟主串一个字符一个字符的匹配,当模式串中跟主串不匹配时,主串回溯到与模式串匹配开始的下一个位置,模式串回溯到第一个位置,继续匹配。算法的时间复杂度为O(m*n),算法如下:实现代码如下://朴素