考研加油站 WWW.KAOYAN.COM
报考指南  考研复习  考研心路  考研资料  考研资讯  考研数学  考研英语   考研政治  考研专业课  在职/专业硕士  考研院校
考研加油站 > 考研资料 > 院校专业课资料 > 上海 > 同济大学 >

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

http://www.kaoyan.com    2008-01-02   考研论坛   网友seal01 提供 【字体:

业务码                    业务名称   数据结构与程序设计(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]已知待散列存储的关键字序列为415384933602771),哈希函数为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;                                    numinteger;(数量)
}Linklist;                                           nextlinkisttp
                                                END
说明:请在4,5题的答案中,先说明算法思想或步骤,然后任选C语言或类PASCAL语言写出算法。

转载请注明出自bbs.kaoyan.com,本贴地址:http://bbs.kaoyan.com/viewthread.php?tid=1696350


Google
热门搜索:  在职研究生 | 出国 | 留学 |  英语 | MBA |  求职 | 招聘 |  交友 | 理财

查看网友评论】【字体: 】【关闭窗口
 发表评论

 验证码:   
 请您注意

爱国 守法 自律 真实 文明
  相关文章

关于我们 - 广告服务 - 联系我们 - 网站导航 - 服务条款 - 隐私保护 - 友情链接
© 1999 - 2007 KaoYan.com, All Rights Reserved.
考研加油站 版权所有
京ICP证030754号 一鸣天下旗下网站