是这样,但思路是一样的)
(1)简述链表和数组各自的优缺点。
(2)程序题,程序大概如下,a为一个字符串数组,字符串中每个字符都是介于’a'到’z'的小写字母,且字符串长度不超过20。
(a)描述bbb函数的功能(可用一句话)。
(b)假设N=7,且a={“cafe”,”baidu”,”recuit”,”thisone”,”iseasy”,”*******”,”*****”}(有两个字符不记得了….),写出输出结果。
(c)写出bbb函数的时间复杂度(用N表示)。
(d) 好像是bbb函数优化提高算法效率之类的。
int aaa(char* b1,char* b2)
{
char g[26];
int i;
for(i=0;i<26;++i)
g=0;
for(i=0;i<26;++i)
g[b1-'a']++;
for(i=0;i<26;++i)
g[b2-'a']–;
for(i=0;i<26;++i)
{
if(g)
return 0;
}
return 1;
}
int bbb(char a[N][20])
{
int f[N];
int i,j;
for(i=0;i f=0;
for(i=0;i {
if(!f)
f=1;
printf(“%s”,a);
for(j=i+1;j {
if(aaa(a,a[j]))
{
f[j]=1;
printf(“%s”,a[j]);
}
printf(“\n”);
}
}
}
(3)魔术师抽出16张牌,红心A,4,Q;黑桃J,8,4,7,2,3;草花K,4,Q,5,6;方块A,5。然后魔术师从中随意抽出一张牌,叫两观众上去,将点数告诉了观众甲,将花色告诉了观众乙。
甲:我不知道这张牌。
乙:我知道你不知道这张牌。
甲:我知道这张牌了。
乙:我也知道了。
请问从这四句话中你能判断是哪一张牌?
(4)用递归和非递归的方法写出树的先序遍历,需为可执行的代码。
给出结点定义
class tree
{
public:
int data;
class tree *left, *right;
};
typedef class tree node;
typedef node *bitree;
为了方便coding,给出stock栈操作,push(PNode);pop();
(5)一个M*M的矩阵A,一个字符串数组S,比较S中的字符串是否在A中的连续对角线序列中出现。
譬如一个4*4的矩阵 1 2 3 4
a b c d
5 6 7 8
e f g h
则其连续对角线从左算:1 2 a 5 b 3 4 c 6 e f 7 d 8 g h
或 1 a 2 3 b 5 e 6 c 4 d 7 f g 8 h
从右算:4 3 d 8 c 2 1 b 7 h g 6 a 5 f e
或 4 d 3 2 c 8 h 7 b 1 a 6 g f 5 e
(a)(b)两问,大概是写出优化高效的算法,不一定要程序,可用流程图或者文字描述,简述算法原理,计算时间复杂度。
(6)给出了一些条件,基于此要写一个任务管理调度器的核心算法,数据结构(前两问),第3问是啥不记得了。
已知有三男两女要用一艘船渡河 这艘船一次只能栽两个人渡河
1:所有女士要求 不能有一男一女单独相处
2:由于每次只能有一个人划船 男士要求不能由同一个人连续划船
3:如果需要一个人单独划船 依次顺序为 阿特 本 考尔 请问最后一个划船的人是谁?
要求:要用最少的渡河次数渡河
1.树的深度优先、广度优先遍历算法,及非递归实现的特点。
2.给出一段代码,找出有错误或安全隐患的地方,及错误原因。
3. 假设有个迷你计算机,1KB内存,1MHz处理器(每秒可以改变10^6次状态)。所有能够在机器上运行且会运行到一定时候能够终止(没有死循环)的程序中,最长的运行时间。自己设置其他假设条件。
4. 一个大型项目中有很多组件,组件之间的编译有依赖,比如必须先编译完N1才能编译N2。设计快速算法,完成N>1000个组件的项目的编译过程,并给出算法复杂度。
5. 代码int maxContinuNum(const char *inputstr, char *outputstr) 在以’\0′结尾的字符串中找连续最长的数字串,并返回其长度,并把该数字串赋给outputstr所知内存(不能用strlen之类的库函数) 比如abc123abcd1234acbde123456789abcdefg,返回9,最长的数字串是123456789。
6. url地址 比如http://www.baidu.com/s wd=baidu 的属性,包括定长属性(比如其被系统发现的时间)和不定长属性(比如其描述)
实现一个系统
a.储存和维护100亿个url及其属性
b.实现url及其属性的增删改
c.查一个url是否在系统中并给出信息
d.快速选出一个站点下所有url
提示:因为数据量大,可能存储在多台计算机中
1,深度优先 广度优先定义。它们非递归实现的特点
2,一个复数实部 虚部分别相乘求和的程序改错
3,一个有内存1KB , 处理器速度 10^6/S
最长计算时间
4, N个文件相互有倚赖(编译的时候) 设计一个算法,编译之
5,一个字符串中最长的数字子串
6,100忆个URL的存储,查找,删除,更新,添加
辨别url
用c语言实现一个revert函数
打印一定概率的随机数
蚂蚁们与木杆
找出数组中第k大小的数
两个已排序的整型数