微软SQL Team 面试题(求解)

goldly 2008-04-17 11:31:51
昨天去面了一把,小汗啊。下面是一些题目,与大家分享。想试试的可以把自己的想法贴出来,呵呵。

1. difference between class index and non-cluster index
2. reverse a sentence, including the sign (!?,.). and how to test this function.
3. Given a tree with 前序排列和中序排列,构造出这颗树
4. 将一个二叉排序转换成双向链表,要求保持节点地址不变。
5. 锁的类型,及其区别
...全文
424 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
goldly 2008-07-10
xuxichun,

第四个题你解的不对。题目要求不能创建新的数据结构来存储,我没有说清楚。思路应该是改变node的指针,使其变成一个双向链表。
回复
meiZiNick 2008-05-01
我也想知道,正在找這方面的資料~~~~~
回复
realduke2000 2008-04-22
哥们你那个组的啊?
回复
East271536394 2008-04-21
1.学习中
回复
kingmax54212008 2008-04-21
1. difference between clustered index and non-clustered index
clustered index 是物理排序的,一个表上只可以建一个 clustered index。
non-clustered index 是非物理排序的,一个表上只可以建多个 non-clustered index。
。。。

5. 锁的类型,及其区别

锁的类型有三种:
共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。

回复
xuxichun 2008-04-18
1.学习中
2。楼上的意思是不是把“who are you?"->"?you are who"
I have 2 solutions:
a.采用栈的结构,是单词,即入栈,用空格区分,标点符号作为一个独立的语义单位单独入栈。完成后,依次出栈即得结果
但是空间复杂度稍高
b.反向扫描字符串,标点符号,单独处理,我写了一个示例程序,不过工作较忙,只是一个原型,没有对符号单独处理,仅供参考

#include <iostream.h>
#include <string.h>

char *reverse(char * src)
{
char *start = src;
char *result = new char[strlen(src)+1];//
memset(result,0,sizeof(result));//
char *end = start+strlen(src)-1;//
while(*end != *start )//
{
if(*end == ' ')//
{
strcat(result,end+1);//
strcat(result," ");//
*end = 0;//
end --;//
}
else
{
end --;//
}
}
strcat(result,end);//
return result;
}

void main()
{
char a[] = "who are you :)";
char * p = reverse(a);
cout<<"The result is: "<<p<<endl;
}

Test:
1.空串
2.参数非法
3.stress test,看有无内存泄漏
4.simple case,正常情况下
5.支持得字符种类,例如,中文,英文,法文。。。。。
目前想到这么多
3.传统而经典得题目,用递归
/*已知二叉树前序中序求树的算法*/
template <class Entry>
Binary_node<Entry>* Binary_tree<Entry>::recursive_pre_mid_creat (char* pre,char* mid,
int pre_i,int mid_i,
int length)
{
int i=0;
Binary_node<Entry>* sub_root;

if (length<=0)
return NULL;

while (i<length&&pre[pre_i]!=mid[mid_i+i])
i++;

sub_root=new Binary_node<Entry>;
sub_root->data=pre[pre_i];
sub_root->left=recursive_pre_mid_creat (pre,mid,pre_i+1,mid_i,i);
sub_root->right=recursive_pre_mid_creat (pre,mid,pre_i+i+1,mid_i+i+1,length-i-1);

return sub_root;
}

template <class Entry>
void Binary_tree<Entry>::pre_mid_creat (char* pre,char* mid,
int pre_i,int mid_i,
int length)
{
root=recursive_pre_mid_creat (pre,mid,pre_i,mid_i,length);
}


4.
//将二叉排序树转化为双向链表
Tree_t * TreeToList(Tree_t * pRoot)
{
Tree_t * pNodeStack[MAXSIZE] = {NULL};
Tree_t * pTemp = pRoot;
int iStackTop = 0;

//the head and tail of the list
Tree_t * pHead = NULL;
Tree_t *pTail = NULL;
Tree_t *pNew = NULL;

if (NULL == pRoot)
{
printf("the tree is NULL \n");
return NULL;
}

while ((NULL != pTemp) ¦ ¦ (0 != iStackTop))
{
if (NULL != pTemp)
{
//push stack
pNodeStack[iStackTop] = pTemp;
iStackTop += 1;
pTemp = pTemp->l_child;
}
else
{
//pop stack;
pTemp = pNodeStack[iStackTop - 1];
pNodeStack[iStackTop - 1] = NULL;
iStackTop -= 1;
pNew = pTemp;
pTemp = pTemp->r_child;

//create the list
if (NULL == pHead)
{
pHead = pNew;
pTail = pHead;
pHead->l_child = NULL;
pHead->r_child = NULL;
}
else
{
pTail->r_child = pNew;
pNew->l_child = pTail;
pNew->r_child = NULL;
pTail = pNew;
}
}
}
// DisplayList(pTail);
return pHead;
}

5.期待高手解答

回复
goldly 2008-04-17
忘了说了,这个职位是sdet.
回复
ROBINAPOLLO 2008-04-17
做个遍历,然后做成双向链表
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-17 11:31
社区公告
暂无公告