以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 计算机考研交流 』   (http://bbs.xml.org.cn/list.asp?boardid=67)
----  06专业试题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=67&rootid=&id=36224)


--  作者:Supremgoooo
--  发布时间:7/30/2006 11:21:00 AM

--  06专业试题


欢迎大家讨论!
--  作者:Supremgoooo
--  发布时间:7/30/2006 11:39:00 AM

--  2006年北大专业课真题参考答案(数据结构部分)
ds算的答案是:

1。DE+2(其中2用来存放n,D值),(2P+E)n+1(1用来存放入口地址)
2。dfgh
3。12354,12435
4。3,80000
5。3,4

1.A      D
      E F J C
      H G B K
2.11
三。
1。abck
2。不行,A的兄弟不能被访问。
修改:
void Tree<Elem>::PrintAll(TreeNode<T>*rt)

  TreeNode<T>*r=new TreeNode;
  SetLeftMostChild(r,rt);//rt作为r最左儿子
  SetValue(r,-1);
  Print(r);

Visit修改为:
if(rt-〉value()!=-1)
  cout<<rt->value()<<"\n";
四。
1。D[v][G.ToVertex(e)].length=1;
2.continue
3.D[i][j].length=D[i][v].length+D[v][j].length
4.D[i][j].length<D[i][v].length+D[v][j].length
5.同3
五。见牛人们的讨论(http://www.ieee.org.cn/dispbbs.asp?boardID=67&ID=32182


[此贴子已经被Logician于2006-9-5 12:05:17编辑过]

--  作者:teng_t1986
--  发布时间:11/9/2006 7:12:00 PM

--  
想请问一下,第一大题第四小题,对100个顺串进行5路归并排序,共需______趟完成,共计____次访外,你的答案是怎么得来的?可以给出详细思路吗?谢谢!
--  作者:ychj
--  发布时间:11/10/2006 12:20:00 PM

--  
简单看了一下。

1) 填空题第一道全错,你多虑了。在内存中,其实n,D,P都是一样的存储大小,但是因为题目并没有告诉你n,D之类的值需要多大空间存储。你假设为1,其实你是有一定的想法,但是不严谨,老师会认为你概念并不清楚。因此你只需去掉你多余的考虑就全对了。

2) 第三大题的第二小问,修改算法题错了。
    注意题意,在算法原有框架的基础上改写
    你的算法中出现了new结点的字样。是在重新建树吗?肯定是不得分的。
    这个题有两种修改办法: 一种是用消除尾递归的办法; 另一种是不消除尾递归,直接分叉递归。
    
    


--  作者:computerlover
--  发布时间:11/10/2006 4:47:00 PM

--  
有道理,不过原框架这个概念也不好把握啊,怎么才叫在原框架上呢?应该会酌情给分吧
--  作者:ychj
--  发布时间:11/10/2006 6:23:00 PM

--  
Supremgoooo的做法不仅改变了算法框架,而且似乎还在建树,这就肯定没法得分了。
如果算法是正确地访问这棵已建好的树, 但改变了框架, 我估计老师可能会适当给点分。但是不好说,也有可能一分都没有,这就看老师的想法了。因为考试的目的就是要加限制地考察考生,这样才能考出水平。如果大家随便写,肯定就容易多了。
从这道题来讲,所谓不改变框架,主要是指for循环要保留。
--  作者:Supremgoooo
--  发布时间:11/10/2006 11:30:00 PM

--  
teng_t1986:

这棵树是这样的:

第0层:*(1点)W

第1层:****(4点)W,R

第2层:********。。。。**(20点)W,R

第3层: ********。。。。。。** (100串) R
后面的R,W表示读,写。每一条记录都要从第3层移动动到第一层:先从第3层读出写到第2层,从第2层读出写到第1层,从第1层读出写到第0层。这就60000次。但是,我考虑到归并树的结构,根节点实际上只有1个节点,所以它还要被读出来写到结果串中,这又20000次,所以共80000次。

ychj大哥:
(1)填空题第一道,我上面写的是我去年考试时写的答案,如果让我现在写,我的答案是:DE+2,(2P+E)n+3。这是我个人对这道题的理解,当然我认为写DE,(2P+E)n是有一定道理的,但是我不会这样写。

(2)第三大题的第二小问,这道题改法太多了。我认为你给的解法:“这个题有两种修改办法: 一种是用消除尾递归的办法; 另一种是不消除尾递归,直接分叉递归。”是这道题最正确的解法!


--  作者:Supremgoooo
--  发布时间:11/10/2006 11:41:00 PM

--  
ychj大哥:编程你比我强多了,你应该熟悉顺序表中在有头节点时的:head,rear,fence变量或head,rear,curr变量。我认为能写出DE,(2P+E)n的只是初学DS的人,像你这样的人应该写的比这多些才对!
--  作者:computerlover
--  发布时间:11/11/2006

--  
请问Supremgoooo兄,广义表加括号那题,有11种不同的广义表,是怎么求得的,我只能得到10种,1 (a ,(b ,c), d)   2 ((a, b, c) ,d)   3 (a, b),c d)  4 (a,(b, c, d))  5(a, b,(c, d))  只加一对括号
 6 ((a, b), (c, d))  7 (((a, b), c), d)   8 ((a, (b, c)), d)   9 (a, (b, (c, d)))
10 (a, ((b, c), d))  加两对括号. 请问还有那种我没写出。谢谢了!
兄弟今年考的怎么样啊,求中位数那题就做个一个多小时,专业课还答的不错啊。你考的是那个方向啊?
--  作者:ychj
--  发布时间:11/11/2006 2:01:00 AM

--  
Sorry, Supremgoooo老弟是不是生气了?
我只是谈我对问题的观点,并没有任何攻击的意思,请别误会。
如果措辞有不妥,请谅解。



--  作者:datoubaicai
--  发布时间:11/11/2006 9:22:00 AM

--  
的确是考虑的多了点
zhangming 02年的课件上有类似的问题,答案是DE,(2P+E)n

--  作者:Supremgoooo
--  发布时间:11/11/2006 12:54:00 PM

--  
呵呵!没没没!别误会!

我意思是说,别人可以认为它的结果是DE,(2P+E)n,从而认为我写的错误。但是你应该能理解我的思路。

我这样写是因为我看到这个题后首先想到的是表定义的类,私有变量里需要包含对表访问时所需要的指针,一旦这个类被实例化,这些指针显然也是需要空间的。

数据结构有时候是很严谨的:例如我认为无头表中的curr可以指向有头表中的fence,但是张铭老师说这样不行。这件事我至今想不通。原因可能就是我只从课本出发,没有实践过吧。在实际编程中的一些约定俗成的东西,你肯定比我体会深。

再说这个题,大家都认为是DE,(2P+E)n,那就是它吧,但是假如考场上遇到这个题,我是会坚持写DE+2,(2P+E)n+3的。


以下是引用ychj在2006-11-11 2:01:00的发言:
Sorry, Supremgoooo老弟是不是生气了?
我只是谈我对问题的观点,并没有任何攻击的意思,请别误会。
如果措辞有不妥,请谅解。


--  作者:Supremgoooo
--  发布时间:11/11/2006 1:20:00 PM

--  
11。(a,b,c,d)

恩,中位数这道题太深刻了。我考前太自信,想着专业课没有题不会做的,答卷时我认为我这个题一定能做出来,所以就一直在做。以至于最后在35分钟内疯狂的写完OS。

06年我差40多分,就算专业分数再高点也没用。失败原因主要是心态问题,12月我发现数学,英语还有很多没看,加上各科期末考试比较忙,而且我3年结束本科的计划也动摇了——因为我发现自己在很多地方都达不到研究生水平,所以就不想再复习考研了。

07考db:DM/OLAP

以下是引用computerlover在2006-11-11的发言:
请问Supremgoooo兄,广义表加括号那题,有11种不同的广义表,是怎么求得的,我只能得到10种,1 (a ,(b ,c), d)   2 ((a, b, c) ,d)   3 (a, b),c d)  4 (a,(b, c, d))  5(a, b,(c, d))  只加一对括号
 6 ((a, b), (c, d))  7 (((a, b), c), d)   8 ((a, (b, c)), d)   9 (a, (b, (c, d)))
10 (a, ((b, c), d))  加两对括号. 请问还有那种我没写出。谢谢了!
兄弟今年考的怎么样啊,求中位数那题就做个一个多小时,专业课还答的不错啊。你考的是那个方向啊?


--  作者:ychj
--  发布时间:11/11/2006 2:30:00 PM

--  
Supremgoooo真的是很令人敬佩。
我当年大三时还在因为放弃上海交大保送而高考差北大几分的事情而耿耿于怀,并没有像你一样已经开始明确自己的下一个目标并且开始努力了。
工作已7年了。无论在IBM,用友,都不能带给我最快乐的研究问题的感觉和最自由的氛围(因为商业公司很多事情都是反复琐碎的),因此才想到进学术圈,进学术圈就要高学历,而在中国,拿学历就必须要考试。
在报考北大计算机的同仁们,可能有一些人曾经历过高考的惜败,也有一些人心怀北大梦,有一部分可能有很好的基础,也有一部分人可能没有,但这些都没有关系,只要你是一个喜欢思考并且通过不断地思考而善于思考的人,我想北大就不会有什么问题。考研试题一般并没有多难的题目,最多就是些小技巧,主要考的就是熟练度。
这是我第一次考研。的确有点晚,但还算来得及。当然也希望是最后一次,呵呵。
关键是心态。说到底,这不就是个考试吗?没啥,考不上工作一段再考,呵呵。
同仁们,努力吧,你一定会成功的。


--  作者:teng_t1986
--  发布时间:11/11/2006 9:12:00 PM

--  
以下是引用Supremgoooo在2006-11-10 23:30:00的发言:
teng_t1986:

这棵树是这样的:

第0层:*(1点)W

第1层:****(4点)W,R

第2层:********。。。。**(20点)W,R

第3层: ********。。。。。。** (100串) R
后面的R,W表示读,写。每一条记录都要从第3层移动动到第一层:先从第3层读出写到第2层,从第2层读出写到第1层,从第1层读出写到第0层。这就60000次。但是,我考虑到归并树的结构,根节点实际上只有1个节点,所以它还要被读出来写到结果串中,这又20000次,所以共80000次。

ychj大哥:
(1)填空题第一道,我上面写的是我去年考试时写的答案,如果让我现在写,我的答案是:DE+2,(2P+E)n+3。这是我个人对这道题的理解,当然我认为写DE,(2P+E)n是有一定道理的,但是我不会这样写。

(2)第三大题的第二小问,这道题改法太多了。我认为你给的解法:“这个题有两种修改办法: 一种是用消除尾递归的办法; 另一种是不消除尾递归,直接分叉递归。”是这道题最正确的解法!



其使我迷惑的只是那句解释“一趟指归并树的一层”,你的答案是共需3趟,我知道你是指那棵归并树有3层,也就是你把那句解释中的“归并树”作为一个整体,一个名词来理解,我一开始也是这样,所以我最初的答案也是3趟,但后来我有想了下:把归并作为动词,把“树的一层”作宾语的理解(因为它是问“共需进行____趟”而不是“共需设置____趟”),:)即对每层树的一个状态的一次归并作为“一趟”.在然后我也不知道该怎么算趟数了……郁闷。
共计80000次访外是正确的。


--  作者:computerlover
--  发布时间:11/11/2006 11:53:00 PM

--  
谢谢Supremgoooo哥啊,  11。(a,b,c,d),我居然把这个给忘了,怪不得数学总不好,考虑问题不严谨啊. ychj大哥,真不简单啊,放弃交大考北大,而且是工作了八年再返回.能进IBM也不错啊,有很好的环境去学习啊,不过你你说的一样,商业性太浓了,什么都得考虑能否为公司带来效益.不能像学校一样专业学点东西.
  我大一时很狂迋,认为只要努力考清华也是有可能的,但现在唉!当初决定考北大是看到他不考数一,考离散.我认为对计算机来说,数学分析,离散比较有用,属于现在数学啊,微积分属于经典数学,而且这些用Matlab就可以了.而且北大数学强大,以前也用过耿素云等老师写的简明版(相对于北大版)的教程,觉得写得很好,所以就有了想考北大的想法.
  我是三流大学的,经常担心复试被刷,前期很影响心情.如今也没发现那个稍好点的学校的CS是不考数一,考离散的,所以也没有回头路了.只能硬着头皮往前走了.以前是想考软件理论的面向对象的技术,报名时也没有这个勇气了,改为了方正的电子出版物.现在连调到软院的希望都不怎么报了,再考一年也不想了,都20好几了.所以如今主要复习对角是DS和,OS,离散,即使考不上,工作中还用得着.我想问问ychj大哥,在IT工作中,硕士是不是很重要啊,本科毕业在单位无论怎么努力都发展不到一定的高度吗?工作了就没时间来学基础性的东西了.没有理论功底,做研发也上了高度吧.还是争取多考点分,各科过线,争取能调剂,到时候再考个博士或怎么和,像我们这种学校找工作,IT方面的多数只能进私企,你软件开发,这东西,好点的公司能用软件工程的方法到开发项目,而大部分国内企业能做到吗?这个对于想在IT业工作一身的人影响是很大的吧.

--  作者:computerlover
--  发布时间:11/12/2006 12:14:00 AM

--  
关于做计算机是不是要硕士才行,我不知道,因为我还没毕业,不过我知道要真想在计算机方面有所发展,要去大公司才行,软件工程大学都学过,看看中国的IT企业有几个能按软件工程的规定来做项目.
  我觉得如果能进微软,IBM完全没有必要去考很多年清华,想去清华读书,都有的是为了个面子,有的是看好了它的学习条件环境,要知道,克林顿,布莱尔来中国也只去清华北大.中国的第一个校园网先在清华和北大试运行.教育部每年拨给这两校的钱最多,院士也最多(除了中科院)优秀同学也多,遇到问题问老师,同学或查资料都方便.要是像我一样在一所三流大学想学计算机的话,遇到一个稍难点的问题,根本没人能回答.这样你的激情就被浇灭了.我买电脑后做的第一件事是重装系统.第一次肯定不会,在安装声卡时,弹出了个框,说驱动没经过过微软认证要不要安装,我正在查书,看这个是什么意思,寝室人个人高中就玩过电脑,自认为懂,说这个不能安,否则以后会有问题,我听了说没安了,又格了得安,还是那问题,他告诉我说可能是你的XP系统不好,再去买个吧,我又去买了个,安装时依然是那问题,又有人建意说是可能SP2的不兼容,试试SP1吧,我又买了一个,然后大家就各自玩起了游戏,就这样,我折腾了大半夜没有成功,第二天我给装机店老板打了个电话,老板说没事,盗版的都这样,然后我顺利安装完成,事后看别人重装也这样的,有人问我为什么刚买就重装了,我想这应该是想学计算机的人要做的第一件事吧,当然我们寝室的人一般都中会COPY电影,安装游戏,系统坏了就拿机房去装,20块钱一次.
永远也忘不了大一时计算机文化基础上老师说的话,我问老师怎么复制,老师答阅:"连这都不知道,还怎么考试".说这话不是说老师态度差,只是说明我当时什么都不懂,我让自己的第一个C程序在我的电脑上运行,我看了无数的书,问了无数的人才能运行.书是死的,无论说的多详细不结合自己的配置环境看一看,就可以解决不了问题(当然我的专业与信息不粘边),最后修改了下当前目录就能运行了.计算机这东西靠自己摸索也能学点名堂,不过进度会很很慢,除非你悟性高.有些东西别人一指点你主就懂了,但要不是每人指点,你可能要一个星期明白,也许会就此放弃了.在这之后我自学完了C,C++,VC,MFC,Windows程序设计,(本来想学点JAVA,Dlphi的,但什么都浅尝则止的话也不好,所以也就放弃了)也积累了些debug经验,但离考个好点的CS研究生还有很大差距,现在在学数据结构,问过很多计算机考研的同学,问有没有编过八皇后等问题,没有听说有人做过或思考过.这些人中肯定有能考上哈工大,东大,北理,南理的.我学DS是一定要上机的,学第二章时,就按严慰敏老师的习题集实习要求去做个题,费了二个星期才完成,虽然不太完美,但总算能运行了.后来感到这样发展下去在考研之前没法复习完DS,所以只好放弃了,只是偶尔感到有问题会写点测试代码.像递归问题你看起来可以是对的,但上机一Debug就现你写的算法是都是错的.
像清华北大,都要求这种实习题要两到三人合作,才行,但我与谁合作? 学操作系统也是,UNIX,见都没见过(盗版的太少),如何去学? 学系统结构时,什么标量机,向量机,服务器,我见都没见过又如何去学?一谈OS,大多数人只会想到XP,不会想到手机也用到过操作系统,谈到计算机组成或体系结构,大多数人也只会想到奔四组装机.大多数学生在听到可移植性时没有想法,因为我们大都只见过,组装微型机加盗版XP的环境.)这些在清华可能都能得到吧?所以有很多人会选择考清华几年.但要是能进像IBM这样的企业也可以,因为我需要的只是环境.

(这是从考研论坛上,清华大学版面上ZT)


--  作者:computerlover
--  发布时间:11/12/2006 12:24:00 AM

--  
只要你是一个喜欢思考并且通过不断地思考而善于思考的人,我想北大就不会有什么问题。

我应该是这样的人吧,但只是眼下还有2个多月了,而政治.英语还.........
尽量努力吧,争取多考点.


--  作者:海天飞鸿
--  发布时间:11/13/2006 11:06:00 PM

--  
请大哥帮忙详细讲解一下 路径压缩 这个题,没见过这种题型,课本讲的也比较少,所以?????
--  作者:haian2442
--  发布时间:1/2/2008 12:52:00 AM

--  
对第4题的多路归并有点不明白的地方:为什么在最后由第1层归并到第0层时,不可以将这次的归并的结果直接输出到最终的磁带上,这样整个就只需要6000次访外了?
--  作者:wulin007
--  发布时间:1/6/2008 10:51:00 PM

--  
我今天做了一下06年的试题,对于Supremgoooo的试题答案有一些自己的见解:
首先是填空题:

1.第四题我认为第一个空是3,(我的思路是5路归并第一趟由100个串变为20个串,然后用三趟归并完),但我第二个空认为是60000,(我认为每一趟归并就是全部的记录读一次,然后写一次,故3×2×10000,不知哪里不完善?)望解答!

2.然后就是那个简答题第一题了:我看了书上写的是把该节点的路径上的父结点连接在根节点上,所以我的答案是:
    a          d
                 e      f     j
                h      g    b     c
                                    k
   不知道我是不是书上的概念理解错了?

3.然后说一下算法辨析的第二问:
修改为:
前面都不动,下面的修改:
for(TreeNode<T> *tmp=rt;tmp!=null;tmp=tmp->RightSibling())
      Print(tmp->LeftMostChild());

4.我用的空位二填写的代码是:break,我记得break是跳出本次循环,不知道continue的意思也是如此吗,还是另有深意,或者break不是如此使用?

5.最后一题吗,我认为不是很难,就是类似于二分查找的思路,不过就是两个数组同时进行,一个数组的中间值大于另一个的,则两个数组的left,right同时变,这样保证每次变化元素的总个数总是100,不过不知道在考试的紧张环境下能否做得出来。
不过对于第二问我有些疑惑,证明时间复杂性,不好写啊!要是我考试的时候写的话估计就会用决策树加一些文字描述。理论证明没有啦!


--  作者:wulin007
--  发布时间:1/6/2008 10:55:00 PM

--  
第二个有点变形,呵呵,这个题我感觉问题最大,好象是概念的问题,望解惑
--  作者:EagleSoaring
--  发布时间:1/14/2008 1:26:00 PM

--  
以下是引用wulin007在2008-1-6 22:51:00的发言:
我今天做了一下06年的试题,对于Supremgoooo的试题答案有一些自己的见解:
首先是填空题:

1.第四题我认为第一个空是3,(我的思路是5路归并第一趟由100个串变为20个串,然后用三趟归并完),但我第二个空认为是60000,(我认为每一趟归并就是全部的记录读一次,然后写一次,故3×2×10000,不知哪里不完善?)望解答!

2.然后就是那个简答题第一题了:我看了书上写的是把该节点的路径上的父结点连接在根节点上,所以我的答案是:
     a          d
                  e      f     j
                 h      g    b     c
                                     k
    不知道我是不是书上的概念理解错了?

3.然后说一下算法辨析的第二问:
修改为:
前面都不动,下面的修改:
for(TreeNode<T> *tmp=rt;tmp!=null;tmp=tmp->RightSibling())
       Print(tmp->LeftMostChild());

4.我用的空位二填写的代码是:break,我记得break是跳出本次循环,不知道continue的意思也是如此吗,还是另有深意,或者break不是如此使用?

5.最后一题吗,我认为不是很难,就是类似于二分查找的思路,不过就是两个数组同时进行,一个数组的中间值大于另一个的,则两个数组的left,right同时变,这样保证每次变化元素的总个数总是100,不过不知道在考试的紧张环境下能否做得出来。
不过对于第二问我有些疑惑,证明时间复杂性,不好写啊!要是我考试的时候写的话估计就会用决策树加一些文字描述。理论证明没有啦!




------------------------------
1.你对,相信我,呵呵~~
2.好像你弄错了,该节点也要连到根。书上图5.13 是对图5.12(c)处理(H,J)的事例。
3.你的,能打印出D吗?疑惑~~


--  作者:peterhertz
--  发布时间:1/17/2008 2:25:00 PM

--  
正愁没地方找答案对呢,It's great!
--  作者:peterhertz
--  发布时间:1/17/2008 2:38:00 PM

--  
bbs上口水战也是正常,可别说话过了头伤了和气啊
--  作者:qwerty
--  发布时间:3/30/2008 8:33:00 PM

--  
不容易啊
--  作者:huzhiweide
--  发布时间:5/11/2008 9:49:00 AM

--  
先下了看看在说
--  作者:litong1981
--  发布时间:7/2/2008 5:24:00 PM

--  
ding
--  作者:wellhome99
--  发布时间:8/21/2008 4:10:00 AM

--  
你们都是牛人
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
187.500ms