
面试题
文章平均质量分 51
beiyouyu
关注搜索与推荐算法、存储/计算、机器学习
展开
-
[微软面试100题] 二元查找数变成有序的双向链表
题目 输入一颗二元查找树,将该二元查找树转换成一个排序的双向链表。 要求:不能创建任何新的节点,只能调整指针的指向。 例如: 10 / \ 6 14 / \ / \ 4 8 12 16 转换后的结果为 4--6--8--10--12--14--16 struct BSTreeNo原创 2012-12-04 14:38:56 · 4326 阅读 · 0 评论 -
[微软面试100题] 设计包含min函数的栈
题目 定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素。 要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。 分析 栈是LIFO的队列,当一个新元素入栈时,栈的最小值状态是已经确定的,这时只需比较新元素与最小值的大小,并将新的最小值记录在该元素上。 显然,只用在标准的栈实现上,为每个元素加入一个伴随值min。 代码 class Stac原创 2012-12-04 14:54:44 · 3970 阅读 · 0 评论 -
[微软面试100题] memmove
题目 用C 语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src 所指的内存内容前n 个字节到dest 所指的地址上。 代码 void * memmove(void *dest, const void *src, size_t n) { if (dest==NULL || s原创 2012-12-04 17:24:53 · 4066 阅读 · 0 评论