考过交大研究生数据结构的in (来就有分)(帮忙顶的有分)

applexgw 2003-11-25 03:58:48
听说上海交通大学的数据结构(研究生入学考)难的很

有点bt的那种

谁能添几个往年的试题给我看看 见识见识

发给我也可以 apple.xgw#163.com
...全文
248 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rerli 2003-11-26
  • 打赏
  • 举报
回复
帮忙顶!
cai114 2003-11-26
  • 打赏
  • 举报
回复
up
uxiaqi85212 2003-11-26
  • 打赏
  • 举报
回复
好像不是很难的说~!
Anders911 2003-11-26
  • 打赏
  • 举报
回复
明年一定搞定它
aaalife 2003-11-26
  • 打赏
  • 举报
回复
偶来了~~~~~:)
fjirie 2003-11-25
  • 打赏
  • 举报
回复
考试是不能准备的~~~嘿嘿

题目不算变态拉
ZhangYv 2003-11-25
  • 打赏
  • 举报
回复
还算比较简单的...
12s 2003-11-25
  • 打赏
  • 举报
回复
顶一下是不是真的有分?
ppgg1979 2003-11-25
  • 打赏
  • 举报
回复
这些题目都把你当成计算机来运行了,基础牢固的话,一步步去做肯定没问题
BrightseaChen 2003-11-25
  • 打赏
  • 举报
回复
up
frankzch 2003-11-25
  • 打赏
  • 举报
回复
名牌大学的考试不能说BT(对那些基础不牢固的人来说是BT),我倒是见到有些不怎么有名的大学考研题目偏的要命
只要你功力深厚基础扎实,什么名牌都不会在话下
zalyer 2003-11-25
  • 打赏
  • 举报
回复
上海交通大学一九九七年硕士研究生入学考试试题
试题名称:数据结构及程序设计技术
试题编号:19
题一(6分)有五个数依次进栈:1,2,3,4,5.在各种出栈的序列中,以3,4先出的序列有哪几个。(3在4之前出栈)
题二(4分)试写出进栈操作,出栈操作算法的时间复杂性。
题三(4分)已知KMP串匹配算法的模式串是AABBAAB,试写出改进后的NEXT信息帧。
题四(4分)设某通信电文由A、B、C、D、E、F六个字符组成,它们在电文中出现的次数分别是16,5,9,3,20,1。试画出编码用的哈夫曼树。
题五(5分)已知某排序平衡二叉树T具有下列特点:(1)结点的关键字均在1到9范围内;(2)在T中存在一个关键字为n1的叶结点,若删去该结点,立即插入一个关键字为n1的结点,得到的平衡树与原T不相同;(3)在T中存在另一个关键字为n2的非叶结点,删去它,并立即插入n2结点,得到与原T相同的平衡树;(4)在T中插入某n3结点后立即删除它,得到的平衡树与原T不相同。试画出具有上述特点的最简单(结点个数最少)的平衡树T,并写明n1,n2,n3分别等于几?
题六(9分)某整型数组A的10个元素值依次为6,2,9,7,3,8,4,5,0,1,用下列各排序方法,将A中元素由小到大排序。
(1) 取第一个元素值6作为分割数,(2) 试写出快速排序第一次分隔后A中的结果。
(3) 用堆排序,(4) 试写出将第一个选出的数据放在A的最后位置上,(5) 将A调整成堆后的A中结果。
(6) 用基数为3的基数排序法,(7) 试写出第一次分配和收集后A中的结果。
题七(14分)某赋权有向图及它的单邻接表如下:
(1) 试写出深度优先搜索顺序。
(2) 画出深度优先生成树。
(3) 将该图作为AOE网络图,(4) 试写出C的最早发生时间及活动FC的最晚开始时间。


(5) 用Dijkstra算法计算源点A到各顶点的最短路径,(6) 试写出当计算出AD及AG的最短路径时,(7) A到其它各点路径(中间结点)的值。
始点
1 2 3
3 2

1 2 1 3


1 5


终点








请在下列各题的 (N) 处,填写适当的Pascal语句(或其它成份),完成各题的程序。
题八(10分)下列程序输入一个正整数N(0<n<10),打印1,2,….,n各数字的全排列,例如输入n=3,打印123,132,213,231,312,321
program exam8(input,output);
const maxn=9;
var a:array[1..maxn] of integer;{放全排序一个值}
s:set of 1..maxn;{放1到9各数字的集合}
n:integer
procedure load(j:integer);{将S中数字装入到a中}
var j,k integer;
begin
for j:=1 to n do
if j in s
then begin
s:= (1)
a[i]:=j;
if i<n
then (2)
else for k:=1 to n do writen(a[k]);
(3)
end
end{load};
begin {main}
readln(n); s:=[1..n]; load(1)
end.
题九(10分)下面的过程对二叉树进行后序遍历(非递归)。假设已有栈的一些操作过程说明。并说明树的结点类型:
type pointer= node;
node=record
data:integer ;
left,right :pointer
end;
procedure post(p:pointer);
var q:pointer;
begin
if p<> then
begin create_stack(s);{建立一个S栈,并初始化为空栈}
while (P<>nil) or not empty_stack(s){s栈不空} do
if p<>nil
then begin
push(s,p); {将P进栈}
push(s,p);{P作为标记进栈}
P:= (1)
end
else begin
pop(s,p);{将标记退出S栈}{退出到P中}
if p<>nil
then begin
push(s,nil){标记进栈}
(2) ;
end
else begin
(3) ;
write(q .data);{访问结点,打印结点数据}
end
end
end{post}
题十(8分)设结点的类型定义如下:
type
node=record data:integer; link:integer end;
在数组a中存放了10个 结点:
var a:array[1..10] of node;
假定在主程序中已经执行了下列语句:
for i:=1 to 10 do
begin a[i].data:=i, a[i].link:=0 end;
最初将10个结点看成分别属于10个集合,每个集合有且仅有一个结点,调用下面过程,判断data=m和data=n的两个结点是否在同一个集合中(最初肯定属于不同集合,除非m=n),若不在同一集合中,则将这两个结点合并到一个集合中。否则,已在同一个集合中,什么也不做。(此方法用于Kruskal求最小生成树的算法中)
procedure merge_set(m,n:integer);
function find(k:integer):integer;
var f:integer;
begin
f:=k;
while a[k].link<>0 do f:=a[k].link;
(1) ;
end;
begin
m:=find(m); n:=frind(n);
if m<>n then (2)
end{merge_set}
题十一(14分)设有数组变量说明:
var a:array[1..n] of record key:integer; next:0..n end;
假设各元素的key已有值,并且假设最大值<=9999,再假定在主程序已执行下面语句,已将各元素组成一个链;
for i:=Ø to n-1 do a[i].next:=i+1;
a[i]:= Ø
下面是以10为基的基数排序法过程,将数组a按Key由小到大排序。
Procedure bucket_sorting;
Const maxkey=9999;
Var bucket,tail :array[0..9] of 0..n;
P,last:0..n;
i:=0..9;
d:integer;
begin
d:=1;
repeat
for i:=0 to 9 do tail[i]:= Ø;
{分解}
P:=a[0].next;{a[0].next是链的第一个结点}
While P<> Ø do
Begin i:=a[p].key div d mod 10;
If (1)
Then bucket[i]:=p
Else a[ (2) ].next:=p;
Tail[i]:=p;
(3)
end
{收集}
last:=0
for i:=0 to 9 do
if (4)
then begin
a[last].next:= (5) ;
last:= (6)
end;
a[last].next:= Ø;
d:= (7)
until d>maxkey
end{bucket_sorting}
题十二(12分)下面是一个判断二叉树是否是排序平衡树的函数说明,若是排序平衡树,则返回值为真,否则返回值假,另外,以参数的形式返回二叉树的高度和最大最小结点值。结点的类型定义与题九的定义相同。
Function isbalance(p:pointer;var h,min,max:integer)
Var hleft,hright,lmax,rmin:integer;
Begin
If p<>nil
then begin
if osbalance(p .left,hleft, (1) )
and isbalance(P .right,hright, (2) )
then begin
if hleft=0
then begin min:=p .data; lmax:=p .data-1 end;
if hright=0
then begin max:=p .data; rmin=p . data+1 end;
if hleft>hright
then h:=hleft+1 else h:=hright+1;
isbalanced:=(abs(hleft-hright)<=1)
and ( (3) )
and ( (3) )
end
else isbalanced:=false
end
else begin h:=0; isbalanced:=true end
end{isbalance}




zalyer 2003-11-25
  • 打赏
  • 举报
回复
上海交通大学一九九八年硕士研究生入学考试试题
试题名称:数据结构和程序设计技术
试题编号:19
题一(20分)判断题:若认为下列命题正确,打““,反之打““
1、 数据元素是数据的最小单位( )
2、 队列逻辑上是一个下端口和上端能增加又能减少的线性表( )
3、 任何一个递归过程都可以转换成非递归过程。( )
4、 只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈( )
5、 数组可看成线性结构的一种推广,6、 因此与线性表一样,7、 可以对它进行插入、删除等操作。( )
8、 两叉树是树的一种特殊情况( )
9、 在树中,10、 如果从结点K出发,11、 存在两条分别到达K’,12? K”的长度相等的路径,13、 由结点K’和k”互为兄弟( )
14、 线索两叉树的优点是便于在中序遍历下,15、 查找前趋和后继结点( )
16? n个结点的两叉树有多种,17、 其中树高最小的两叉树排序树是最佳的( )
18、 最佳两叉排序树的任何子树都是最佳的( )
19、 设T为一棵平衡树,20、 在其中插入一个结点N,21、 然后立即删除该结点得到T1,22? T与T1必定相同23、 ( )
24、 一个有向图的邻接表和逆邻接表中结点的个数可能不25、 等。( )
26、 任何有向图的结点都可以排成拓扑排序,27、 而28、 且拓扑排序不29、 唯一( )
30、 当改变网上某一关键路上任一关键活动后,31、 必将产生不32、 同33、 的关键路径( )
34、 两分法插入排序所需比较次数与待排序记录的初始排列状态相关( )
35、 当待排序记录已经从小到大排序或者已经从大到小排序时,36、 快速排序的执行时间最省( )
37、 在索引顺序表中,38、 实现分块查找,39、 在等概率查找情况下,40、 其平均查找长度不41、 仅与表中元素个数有关,42、 而43、 且与每块中元素个数有关( )
44、 在执行某个排序算法过程中,45、 出现了排序码朝着最终排序序列相反方向移动,46、 则该算法是不47、 稳定的( )
48、 堆排序是稳定的排序方法( )
49、 在分配排序时,50、 最高位优先分配法比最低位优先分配法简单( )
题二、(15分)试证明:若借助栈由输入序列1,2,…n得到输出序列为p1,p2,…pn,(它是输入序列的一个排序),则在输出序列中不可能出现这样的情形:存在着I<j<k,使pj<pk<pi。
题三、(12分)假定有下列n*n矩阵(n为奇数)

a11 0 …. 0 a1n
0 a22….a2,n-1 0
A= . .
. .
. .
an1 0…. 0 ann
如果用一维数组B按行主次序存储A的非零元素,问 1)A中非零元素的行下标与列下标的关系;
2)给出A中非零元素aij的下标(i,j)与B中的下标R的关系;
3)假定矩阵中每个元素占一个存储单元,且B的起始地址为A0,给出利用aij的下标(i,j)定位在B中的位置公式。
题四(8分)试找出分别满足下面条件的所有二叉树:
1) 前序序列和中序序列相同2) ;
3) 中序序列和后序序列相同4) ;
5) 前序序列和后序序列相同6) 。
题五(15分)在二叉树中查找值为X的结点,试编写算法(用C语言)打印值为X的结点的所有祖先,假定值为X的结点不多于1个,最后,试分析该算法的时间复杂性。(若不加分析,直接写出结果,按零分算)
题六(10分)设如下带权有向图,试利用求每对顶点之间最短路径的 Floyd算法,给出代价邻接矩阵,矩阵序列A(i)(i=1,2,3)以及最短路径 PATH<i,j> (1<=i,j<=3)


6

4 2

3
11

题七(12分)已知a数组元素共5个,依次为12,10,5,3,1;b数组元素共4个,依次为4,6,8,15,则执行如下所示的过15,12,10,8,6,5,4,3,1,数组a,b,c的长度分别为l=5,m=4,n=9,请在程序中方框内填入正确的成份,以完成上述要求。
Procedure Sort
Var i,j,k,x:integer:
d:array[1..m] of integer;
begin
for i:=1 to m do d[i]:=
i:=1;j:=1;k:=1;
while(i<=l) and (j<=m) do
begin
if a[i]>d[i]
then begin


end;
else begin


end;
c[k]:=x;

end;
while do
begin
c[k]:=a[i]; k:=k+1;i:=i+1
end;
while do
begin
c[k]:=d[j]; k:=k+1;j:=j+1
end;
end;{sort}
题八(8分)已知如下一棵三阶B_树,试画出插入关键字B,L,P,Q,R以后的树形。



zalyer 2003-11-25
  • 打赏
  • 举报
回复
上海交通大学一九九九年硕士生入学考试试题
试题序号:19
试题名称:数据结构及程序设计技术

说明:试卷共十题,第1-5题只需写出实现算法的函数或过程即可,不必写出整个程序,只准使用pascal或C编写(类 pascal和类C均可),必须写清楚算法设计思想及所用的数据结构,对程序要加以适当的注解,程序应有良好的结构,不得使用goto语句,第6-10题直接写出答案即可。
1、 假设有两个按元素值递增有序排列的线性表A和B,2、 均以单链表作存储结构,3、 请编写算法将表A和表B归并成一个按元素非递减有序(允许值相同4、 )排列的线性表C,5、 并要求利用原表(即表A和表B)的结点空间存放表C。(12分)
6、 利用两个栈S1和S2模拟一个队列,7、 写出入队和出队的算法(可用栈的基本操作)。(12分)
8、 试以二叉链表作存储结构,9、 编写按层次顺序遍历二叉树的算法。(12分)
10、 已知一棵二叉树的先序遍历和中序遍历序列分别在于两个一维数组中,11、 试编写算法建立二叉树的二叉链表。(12分)
12、 写出从哈希13、 表中删除关键字为K的一个记录的算法,14、 设哈希15、 函数为h,解决冲突的方法为链地址法。(12分)
16、 考虑下图:(12分)
1) 从顶点A出发,2) 求它的深度优先生成树。
3) 从顶点E出发,4) 求它的广度优先生成树。
5) 根据普里姆(Prim)算法,6) 求它的最小生成树。
5 A 2
B 6 4 D
1 C
3 E 5 3
G 1

17、 试求按关键字序列(12,18、 1,19、 4,20、 3,21、 7,22、 8,23、 10,24、 2)插入生成的二叉排序树和平衡二叉树。(7分)
25、 给出一组关键字T=(12,26、 2,27、 16,28、 30,29、 8,30、 28,31、 4,32、 10,33、 20,34、 6,35、 18),36、 写出用下列算法从小到大排序时第一趟结束时的序列:(9分)
1) 希2? 尔排序(第一趟排序的增量为5)
3) 快速排序(选第一个记录为枢轴(分隔))
4? 链接基数排序(基数为10)
37、 判别序列(12,38、 70,39、 33,40、 65,41、 24,42、 56,43、 48,44、 92,45、 86,46、 33)是否为堆,47、 如果不48、 是,49? 则把它调整为堆。试给出堆排序方法在平均时间性能、最坏情况下的时间性能和辅助存储量,50、 并与快速排序方法在以上三方面进行比较。(8分)
51、 给出一组关键字T=(12,52、 2,53、 16,54、 30,55、 8,56、 28,57、 4,58、 10,59、 20,60、 6,61、 18),62、 设内存工作区可容纳4个记录,63、 写出用置换-64、 选择排序得到的全部初始归并段。(4分)







33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧