
程序员代码面试指南-算法与数据结构最优解-c++实现
扎扎实实写代码
勤勤恳恳打基础,扎扎实实写代码!
展开
-
程序员代码面试指南-猫狗队列(c++)
实现一种猫狗队列-要求如下:程序员面试指南-左程云,page:10#include <iostream>#include <stack>#include <vector>#include <queue>#include <string>using namespace std;class Pet{public: Pet(); Pet(string str){type= st原创 2016-10-26 18:00:46 · 540 阅读 · 0 评论 -
用一个栈来实现另一个栈的排序
题目:一个栈中元素的类型为整数,现在将该栈从顶到底按从大到小的顺序排序,只许申请一个栈,除此之外可以申请新的变量,但不能申请额外的数据结构。 算法思路: 将要排序的栈记为sta,申请辅助栈为st_help.保存sta栈顶元素到cur变量,并pop栈顶元素。 1)如果cur小于等于st_help栈顶元素,则将cur压入st_help 2) 如果cur小于st_help 栈顶元素,则将st_he原创 2016-10-26 19:03:18 · 640 阅读 · 0 评论 -
coding interview guide-两个栈组成队列 C++实现
编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek),对应c++队列的(push,pop,front,empty)。 算法详解见;程序员代码面试指南-算法与数据结构题目最优解-左程云 c++类实现:#include <iostream>#include <iterator>#include <stack>using namespace std;class Stack原创 2016-10-17 19:35:39 · 398 阅读 · 0 评论 -
设计一个有getMin功能的栈-c++
题目:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 算法思路:详见程序员代码面试指南 左程云著。page:1-3c++实现代码:#include <iostream>#include <vector>#include <iterator>#include <stack>using namespace std;class MyStack{public原创 2016-10-17 13:33:44 · 658 阅读 · 0 评论 -
经典汉诺塔问题:分别用递归和非递归实现
题目:相邻三根柱子,分别为A(源),B(备用),C(目标)。将A上的n个盘子移动到C上。 限制条件: 在小圆盘上不能放大圆盘。 在三根柱子之间一回只能移动一个圆盘。 只能移动在最顶端的圆盘。 方法一:递归方法。 算法: 1)当A上的盘子数量为1时,直接将盘子移动到C 柱子上。 2)当A上的盘子数量大于1时,先将A上的第1到n-1个盘子借助C,移动到B上。原创 2016-10-27 17:16:39 · 701 阅读 · 0 评论 -
coding interview guide-仅用递归函数和栈操作逆序一个栈-c++实现
题目:一个栈依次压如1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。 算法详解:见程序员代码面试指南-左程云。 page:8-9; c++实现代码:using namespace std;template <typename T>T GetAndRemova原创 2016-10-18 15:27:35 · 516 阅读 · 0 评论