同济大学2002年数据结构与程序设计考研试题_-查字典考研网
 
请输入您要查询的关键词
  查字典考研网 >> 历年真题 >> 专业课试题 >> 同济大学2002年数据结构与程序设计考研试题

同济大学2002年数据结构与程序设计考研试题

考研时间: 2009-10-30 来源:查字典考研网

业务码 业务名称 数据结构与程序设计(C) (013)

适用专业:检测技术与自动化装置 成人教育学 电机与电器 电力系统及其自动化

信与信息系统 控制理论与控制工程 系统工程 模式识别与智能系统|

计算机系统结构 管理科学与工程 0816 结构工程|

交通信息工程及控制 交通运输规划与管理 计算机软件理论 计算机应用技术

数据结构部分:

1.[10分]设有一个工程包含了8个子工程,这些子工程之间有如下的优先关系:

1>2,3,4 3>5 5>7, 8 2>3, 6 4>7 6>5, 8

(这里,1>2,3,4表示子工程1需要在子工程2,3,4开始前完成,其它的依次类推)

如果在邻接表存储结构中,每个顶点的邻接点序号是从小到大链接时,试写出其拓扑有序序列,并说明这个工程的可行性。

2.[10分]已知待散列存储的关键字序列为(4,15,38,49,33,60,27,71),哈希函数为H(key)=key MOD 11,哈希表HT的长度为11.采用二次探测再散列法解决冲突,试构造此哈希表,并写出在等概率情况下的平均查找长度。

3.[10分]二叉树的二叉链表表示为:

类C语言 类PASCAL语言

typedef struct bnode{ TYPE bitreptr=↑bnodetp;

char data; bnodetp=RECORD

struct bnode *Lchild,*Rchild; data:char;

}BNODE; Lchild,Rchild:bitreptr

END;

以下是分别用类C语言和类PASCAL语言描述的二叉树后序遍历的非递归算法,其中,使用一个顺序栈stack,栈顶指针为top;s为标志数组;p为辅助指针。

类C语言 类PASCAL语言

void postorder(BNODE *p) PROC postorder(p:bitreptr);

{top=0; top:=0;

do{ REPEAT

while(p!=NULL) { WHILE p<>NIL DO

top++; [ top:=top+1;

stack[top]=p; stack[top]:=p;

s[top]=0; s[top]:=0;

(1)______; (1)______;]

} WHILE(s[top]=1)AND(top>0) DO

while((s[top]= =1)&&(top>0)){ [ (2)________;

(2)________; (3) ________;

(3) ________; write(p↑。data)]

printf(“%c”,p→data); IF top>0

} THEN [s[top]:=1;

if(top>0){ (4)_________;}

s[top]=1; UNTIL top=0

(4)________; ENDP;

}

}while(top!=0)

}

4.[10分]试写出在含有n个元素的堆中增加一个新元素x,且调整为堆的算法。

说明: (1)本题中的堆为小顶堆。

(2)每个元素为一个记录,类型rectype,其中,关键字域为key;由n个记录

R[1]到R[n]所组成的文件类型为filetype.

5.[10分]在某商店仓库中,欲对电视机按其价格从低到高的次序构造一个头指针为head的、

不带表头结点的单循环链表,链表的每个结点指出同样价格的电视机的台数。现有m台价格

为n元的电视机入库,试编写出仓库电视机的进货算法。

链表的结点类型表示:

类C语言 类PASCAL语言

typedef struct list{ TYPE linkisttp=↑nodetp;

float price;(价格) nodetp=RECORD

int num;(数量) price:real; (价格)

struct list *next; num:integer;(数量)

}Linklist; next:linkisttp

END;

说明:请在4,5题的答案中,先说明算法思想或步骤,然后任选C语言或类PASCAL语言写出算法。

请点击查看更多同济大学考研相关信息>>

相关链接:同济大学历年考研专业课试题汇总

查看全部

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

当前热点关注

大家都在看