![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题目
文章平均质量分 72
candice廷
做一位出色的算法工程师
展开
-
3进制数
一个珠宝商甲要鉴定41克以下的宝石(40克及以下的任意重量),商甲只带一个天平和四个砝码,请问带哪四个砝码? #include #include #include #include #include #include using namespace std; bool ok(int x,int a,int b,int c,int d) { int i,j,k,l;原创 2014-12-01 14:33:58 · 1083 阅读 · 0 评论 -
二叉树,递归非递归遍历算法(全)
包含了所有的非递归和递归的算法: #include #include #include using namespace std; //二叉树结点的描述 typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild; //左右孩子 }BiTNode,*BiTree;原创 2015-02-03 21:11:15 · 796 阅读 · 0 评论 -
完整类实现:构造,析构,遍历二叉树
根据前面一个博文内容已经讲述了如何根据两种遍历方式进行构建二叉树 这里利用递归方式遍历二叉树,递归方式比较简单,后续补充其余非递归方式 再此主要是完善类的使用: 其中重点在于:接口定义 二叉树的析构删除 以及类成员变量中如果有指针,同时涉及复制构造函数和赋值操作符函数时需要用到的智能指针 如果接口方面定义不够好,还望包涵 .h文件 #include #include #incl原创 2015-01-11 01:08:02 · 4692 阅读 · 0 评论 -
利用特殊的二叉树层序重构二叉树
如果直接利用二叉树的层序是没有办法构建一个二叉树的,但是如果是完全二叉树应该是可以的 这里层序序列中用-1表示当前节点没有值 构建主要采用了非递归的方法,利用了queue,因为层序的遍历可以通过queue来实现那么自然也可以通过这个方法进行构建 #include #include #include using namespace std; typedef struct T原创 2015-02-04 15:26:41 · 824 阅读 · 0 评论 -
微软面试飞机加油问题
已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 。一箱油可供一架飞机绕地球飞半圈。 问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场) 我们计算的结果:共需出动5架次飞机完成此次飞行任务。转载 2014-12-26 10:42:16 · 1312 阅读 · 0 评论 -
7 两个栈模拟队列,两个队列模拟栈
利用两个栈模拟队列 stack1,stack2 首先向stack1当中放入数据,如果需要输出数据,从stack2中delete数据,如果stack2为空,就把stack1中数据导入stack2 #include "static.h" #include #include template class CQuue { public: CQuue(){}; ~CQuue(){}原创 2015-01-12 18:51:55 · 1042 阅读 · 0 评论 -
剑指offer面试题6 前序遍历&中序遍历,后序遍历&中序遍历重构二叉树
重构二叉树目前主要是采取递归的方式 目前只能通过前序,中序 或者 后续,中序进行重构 前序和后序是不能够重构的,举个例子: 前序: 1 2 4 7 3 5 6 8 后续: 7 4 2 5 8 6 3 1 是无法判断出7是节点4的左孩子还是右孩子的 首先讲解利用前序和中序进行重构 前序: 1 2 4 7 3 5 6 8 中序: 4 7 2 1 5 3 8原创 2015-01-10 21:58:35 · 1818 阅读 · 0 评论 -
剑指offer面试题5—反向打印链表
反向打印一个链表 链表不同于数组,内存并不连续,通过节点之间的指针进行连接,逆向打印的时候可以利用栈的特点,比较简单 #include "static.h" #include #include using namespace std; struct ListNode { ListNode * pNext; int Value; }; int main() { stack N原创 2015-01-09 16:29:20 · 679 阅读 · 0 评论 -
剑指offer面试题4—替换空格
题目比较简单,把字符串中的空格替换为相应的字符串 如果从前开始循环替换,每移动一个元素,后面的数据都需要移动,因此选用的方法应该是从后面行前替换 #include "static.h" #include using namespace std; void ReplaceBlank(char *Src, char *transString,int Length) { int transSi原创 2015-01-09 15:34:17 · 659 阅读 · 0 评论 -
内存 堆和栈的区别
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)―由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)―一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)―,全局变量和静态变量的存储原创 2015-03-13 13:43:02 · 647 阅读 · 0 评论