![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法常见面试题
fern_girl
这个作者很懒,什么都没留下…
展开
-
二叉树常见面试题汇总
1.先序/中序/后序遍历二叉树(递归非递归实现),层序遍历二叉树遍历2.求二叉树的高度size_t Height()//获取该树的高度 { return _Height(_pRoot); } size_t _Height(Node* pRoot)//获取数树的深度,根节点为1 { if(pRoot==NULL)原创 2017-05-11 15:27:10 · 2436 阅读 · 1 评论 -
汉罗塔问题(修改版)---递归和栈实现
汉罗塔问题是一个非常经典的算法,我们首先来研究一下修改的汉罗塔(简化步骤),在后面我们将来讲述经典的汉罗塔问题。题目: 修改后的汉罗塔的规则:现在限制不能从最左侧的塔直接移动到最右侧,必需要经过中间;同时从最右侧移动到最左测试,同样必需经过中间;要求移动N层塔时,打印最优移动1、用递归函数实现(从最左移动到最右)分析: - 当只有一层塔时,我们先需要将其从左移到中间,再从中间移动到右边,共分为原创 2017-05-25 15:03:41 · 1160 阅读 · 0 评论 -
约瑟夫环的普通解法及优化
约瑟夫环问题的普通解法很简单,就是不断遍历循环链表,删除节点,假如有n个人,等到第m个人报数时杀掉这个人,即删除这个节点,直到只剩下一个人。struct Node{ Node(int data) :_data(data) ,_pNext(NULL) {} int _data; Node* _pNext;};1,普通解法,时间复杂度为O原创 2017-05-25 22:56:27 · 649 阅读 · 0 评论 -
栈的面试题总结
1.不用辅助空间实现栈的逆序(利用函数的递归) 例如栈中元素1 2 3 4,逆序后栈中元素为4 3 2 1int GetLastNumOfStack(stack<int>& s)// 得到栈顶的元素{ int result = s.top();//取栈顶元素 s.pop();//出栈 if(s.empty()==true) return result;//原创 2017-05-16 07:31:35 · 335 阅读 · 0 评论 -
队列的常见面试题总结
1.实现猫狗队列#include<string>#include<queue>//宠物类class Pet{public: Pet(string type) :_type(type) {} string GetPetType() { return _type; }private: string _type;};原创 2017-05-22 15:30:31 · 782 阅读 · 0 评论