文档介绍:精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
数据结构+算法面试100题~~~摘自CSDN作者July
把二元查找树转变成排序的双向链表(树)
题目:
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表
如果链表可能有环列?
如果需要求出俩个链表相交的第一个节点列 ?
第8题〔算法〕
此贴选一些 比拟怪的题,,由于其中题目本身与算法关系不大, .
有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,
这两个房间是 分割开的,从一间里不能看到另一间的情况.
现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的.
有什么方法呢?
你让一些人为你工作了七天,,每天给出一 块.
如果你只能将金条切割两次,你怎样分给这些工人 ?
★.
★用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表.
★ ?
★用一种算法使通用字符串相匹配.
★.
★颠倒一个句子中的词的顺序,比方将“我叫克丽丝〞转换为“克丽丝叫我〞 ,
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
实现速度最快,移动最少.
★.
★比拟两个字符串,用 O〔n〕时间和恒量空间.
★假设你有一个用1001个整数组成的数组,这些整数是任意排列的, 但是你知道所有
的整数都在1到1000〔包括1000〕,除一个数字出现 两次外,其他所有数字只出
, 用一种算法找出重复的那个数字. 如果你在运
算中使用了辅助的存储方式,那么你能找到不 用这种方式的算法吗?
★不用乘法或加法增加 7倍.
第9题〔树〕
判断整数序列是不是二元查找树的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.
如果是返回true,否那么返回falseo
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ /
10
/ / / /
7 9 11
因此返回true.
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回 false.
第10题〔字符串〕
翻转句子中单词的顺序.
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.
,标点符号和普通字母一样处理.
例如输入"I am a student.",那么输出"student. a am I〞.
第11题〔树〕
求二叉树中节点的最大距离 如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数.
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离.
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
第12题〔语法〕
题目:求 1+2+••• +n,
要求不能使用乘除法、for、while、if、else> switch、case等关键字以及条件判断语句 〔A?B:Q.
第13题〔链表〕:
题目:输入一个单向链表, 输出该链表中倒数第
尾指针.
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
第14题〔数组〕:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字.
要求时间复杂度是 O〔n〕.如果有多对数字的和等于输入的数字,输出任意一对即可.
例如输入数组1、2、4、7、11、+11=15,因此输出4和11.
第15题〔树〕:
题目:输入一颗二元查找树,将该树转换为它的镜像,
即在转换后的二元查找树中,左子树的结点都大于右子树的结点.
用递归和循环两种方法完成树的镜像转换.
例如输入:
8
//
10
// //
5 7 9 11
输出:
8
/ /
10 6
// //
11 9 7 5
定义二元查找树的结点为:
struct BSTreeNode // a node in the binary search tree (BST) (
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删