上海交通大学1990年硕士研究生考试数据结构及程序设计技术试题

合集下载

上海交通大学99年研究生考试数据结构及程序设计技术试..

上海交通大学99年研究生考试数据结构及程序设计技术试..

上海交通大学99年研究生考试数据结构及程序设计技术试题上海交通大学一九九九年硕士生入学考试试题试题序号:19(答案清写在答题纸上)试题名称:数据结构及程序设计技术说明:试卷共十题。

第I-5题只需写出实现算法的函数或过程即可。

不必写出整个程序,只准使用Pascal或C编写(类Pascal和类C也可),必须写清楚算法设计思想及所用的数据结构,对程序要加以适当的注解,程序应有良好的结构,不得使用GOTO语句。

第6-10题直接写出答案即可。

1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将表A和表B归并成一个按元素值非递减有序(允许值相同)排列的线性表C,并要求利用原表(即表A和表B)的结点空间存放表C。

(12’)2.利用两个栈S1和S2模拟一个队列,写出入队和出队的算法(可用栈的基本操作)。

(12’)3.试以二叉链表作存储结构,编写按层次顺序遍历二叉树的算法。

(12’)4.已知一棵二叉树的先序遍历序列和中序遍历序列分别存于两个一维数组中;试编写算法建立该二叉树的二叉链表。

(12’)5.写出从哈希表中删除关键字为K的一个记录的算法。

设哈希函数为h,解决冲突的方法为链地址法。

(12’)6.考虑下图:(12’)1)从顶点A出发,求它的深度优先生成树。

2)从顶点E出发,求它的广度优先生成树。

3)根据普里姆(Prim)算法,求它的最小生成树。

7.试求按关键字序列(12,1,4,3,7,8,1O,2)插入生成的二叉排序树和平衡二叉树。

(7’)8.给出一组关键字T=(12,2,16,3O,8,28,4,10,ZO,6,18)。

写出用下列算法从小到大排序时第一趟结束时的序列:(9’)1)希尔排序(第一趟排序的增量为5)2)快速排序(选第一个记录为枢轴(分隔))3)链式基数排序(基数为1O)9.判别序列(12,70,33,65,24,56,48,92,86,33)是否为堆,如果不是,则把它调整为堆,试给出堆排序方法在平均时间性能、最坏情况下的时间性能和辅助存储量,并与快速排序方法在以上三方面进行比较。

上海交通大学数据结构及程序设计技术1992真题

上海交通大学数据结构及程序设计技术1992真题

上海交通大学1992年研究生考试数据结构及程序设计技术试题
第一题(15分)
试用PASCAL语言编写一个将单链表颠倒的过程说明。

第二题(15分)
(1)已知某二叉树的前序遍历次序为:ABDCEFGH;中序遍历次序为:DBAECFHG。

画出这棵二叉树。

(2)已知一棵一般树如图,将这棵树转换成二叉树,试画出转换后的二叉树图形。

第三题(15分)
设二叉树已按通常的链接结构存贮。

指针变量root指向树根。

每个结点的类型为:
type node=record data:integer;
left,right:pointer;
lfag,rflag:boolean
end;
其中,left和right分别为指向它的左右子树的指针,在存贮时已有值。

试用PASCAL语言编写一个过程说明,将这棵二叉
树改变为中序穿线结构存贮。

第四题(15分)
(1)试写出下面(左)有向图的三种拓扑排序次序。

(2)画出下面(右)图一个最小代价生成数。

第五题(15分)
用文字叙述快速排序的算法思想(不必写程序)。

该算法最好和最坏时的时间、空间复杂度是什么?何时发生最坏的情
况?
第六题(15分)
设排序二叉树已按通常的链接结构存贮,指针变量root指向树根,结点的类型如下:。

上海交通大学数据结构与C语言程序设计习题及答案

上海交通大学数据结构与C语言程序设计习题及答案

专业课复习资料(最新版)封面数据结构与C语言程序设计一. 是非题(2’⨯10)( )1、 队列逻辑上是一个表头和表尾既能插入又能删除的线性表。

( )2、 任何一个递归过程都可以转换成非递归过程。

( )3、 与n个键值的集合{k1,k2,…,kn}相对应的堆是唯一的。

( )4、 在索引顺序表上实现分块查找,在等概率查找情况下,其查找长度只与表中元素个数有关,而与每块中元素个数无关。

( )5、 所谓加权无向图G的最小生成树T就是将G中各结点间的最短路径作为边所构造出来的G的子图。

( )6、 在10万个随机排列的数据中,要选出5个最小的数,采用快速排序比采用Shell排序、堆排序及各种直接排序法都快。

( )7、 B树查找算法的时间复杂性为O(n)。

( )8、 哈希表查找无需进行关键字的比较。

( )9、 在执行某个排序过程中,出现排序码朝着最终位置相反方向移动,则该算法是不稳定的。

( )10、任何有向图的顶点都可以按拓扑序排序。

二.填空题(2’⨯6)1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10, 为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是 位。

2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK, 按后序遍历所得到的结点序列为DCEGBFHKJIA, 按先序遍历所得到的结点序列为 。

3. 设哈希表长度为11,散列函数H(k)=k MOD 11, 若输入顺序为(18,10,21,9,6,3,16,25,7),处理冲突方法为线性探测再散列,请构造哈希表 。

果 。

5.已知模式匹配的KMP算法中模式串t=’adabbadada’,其next函数的值为 。

6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为 。

三.简答题(6’⨯5)1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。

上海交通大学 2007-2008学年 程序设计基础(C++)期末考试试卷(附答案)

上海交通大学 2007-2008学年 程序设计基础(C++)期末考试试卷(附答案)
char *pt3="34";
pt3=pt2;//A
strcpy(pt1, pt2); //B
strcpy(pt2, pt3);//C
cout<<pt2;//D
}
9下列定义或者声明语句哪个是不正确的(D)
A void* f(int a[], int n);
B void* (*f)(int a[], int n);
3写出运行结果:
#include<iostream>
using namespace std;
void foo( int &c){
static a=1;
c+=a++;
}
void main()
{
int a;
int &b=a;
a=10;
foo(a);
cout<<a<<endl;
foo(++b);
cout<<a<<endl;
A break语句只应用于循环体中
B continue语句只应用于循环体中
C break是无条件跳转语句,continue不是
D break和continue的跳转范围不够明确,容易产生问题
4.有如下定义语句:int a[]={1,2,3,4,5};,则对语句int *p=a;正确的描述是(B)。
A语句int *p=a;定义不正确
一、选择填空:(每题1分,共10分)
1.已知各变量的类型说明如下:
inta=1,b=2;
double x=1.42;
则以下不符合C++语言语法的表达式是(D)

上大数据结构96-02

上大数据结构96-02

上海大学99考研题一、请完善下列程序或算法流程图,其中第1、2、3小题在(a),(b)中任选一题:(共36分)1.下列程序段search(a,n,k)在数组a的前n(n>=1)个元素中找出第k(1<=k<=n)小的值。

这里假设数组a中各元素的值都不相同。

(8分)程序(a)#define MAXN 100int a[MAXN],n,k;int search-c(int a[], int n, int k){int low, high, i, j, m, t;k--, low=0 ; j=high ; t=a[low];do {while (i<j && t<a[j]) j--;if (i<j) a[i++]=a[j];while (i<j&& t>=a[i]) i++if (i<j) a[j--]=a[i];} while (i<j);a[i]=t;if ( (1) )if (i<k)low= (2) ;elsehigh= (3) ;} while ( (4) );return(a[k]);}程序(b)const maxn=100;type atype=array [1…maxn] of integer;vara: atype;n,k,i:integer;function search-pascal(var a;atype; n,k,:integer): integer;var low ,high ,i ,j, t:integer;beginlow:=1; high:=n;repeatt:=a[low]; i:=low; j:=high;repeatwhile( i<j) and (t<a[j]) doj:=j-1;if ( i<j) thenbegina[i]:=a[j];i:=i+1;end;while (i<j) and (a[i]<=t) doi:=i+1;if (i<j) thenbegina[j]:=a[i];j:=j-1enduntil i=j;a[i]:=t;if (1) thenif i<k thenlow:= (2)elsehigh:= (3)until (4) ;search-pascal:= a[k]end;2.假设root是一棵给定的非空查找树,对于下面给出的子程序,当执行注释中给出的调用语句时,就可以实现如下的操作:在非空查找树root中查找值为k 的结点,同时置success为“真”;若值为k的结点不在树中,或者虽然在树中,但不是叶子结点,则不进行删除,仅置success为“假”。

计算机考研考试题目及答案

计算机考研考试题目及答案

计算机考研考试题目及答案计算机考研考试是广大计算机专业毕业生追求深造的重要途径之一。

通过考研,学生有机会进入优质的学术研究机构或者深入实践的科研岗位。

在这篇文章中,我们将为大家提供一些常见的计算机考研题目及其答案,希望能对正在备战考研的同学们有所帮助。

第一部分:数据结构1. 什么是数据结构?答案:数据结构是计算机存储、组织和管理数据的方式。

它涉及到各种数据类型,如数组、链表、栈、队列、树、图等,并提供了一系列操作这些数据类型的操作方法。

2. 请说明数组和链表的区别。

答案:数组是一种线性数据结构,其中的元素在内存中是连续存储的,可以通过索引访问。

链表是通过指针连接起来的节点构成的,节点在内存中可以是离散的,每个节点都包含了下一个节点的指针。

3. 请解释一下栈和队列的特点。

答案:栈是一种后进先出(LIFO)的数据结构,只允许从栈顶进行插入和删除操作。

队列是一种先进先出(FIFO)的数据结构,允许在队尾插入元素,在队首删除元素。

第二部分:操作系统1. 什么是进程和线程?答案:进程是指在计算机上运行的程序的实例,每个进程都有自己的内存空间和资源。

线程是进程中的执行单元,一个进程可以包含多个线程,共享进程的资源。

2. 解释一下死锁。

答案:死锁是指两个或多个进程在互斥、占有、等待和不可剥夺资源等条件下,无法向前推进的状态。

在死锁中,每个进程都在等待其他进程释放资源,因此无法继续执行。

3. 什么是虚拟内存?答案:虚拟内存是操作系统提供给应用程序的一种抽象概念,它使得应用程序认为自己拥有连续的可用内存空间,而实际上这个空间可能是分散存储于物理内存和硬盘上的。

第三部分:数据库1. 请解释关系数据库和非关系数据库的区别。

答案:关系数据库使用表格的形式组织数据,表格由行和列组成,通过事先定义的模式进行数据管理。

非关系数据库通常不使用表格,而是使用键值对、文档、图等方式组织数据。

2. 什么是SQL?答案:SQL(Structured Query Language)是一种用于管理关系数据库的编程语言。

上海交通大学一九九九年硕士研究生入学考试试题 电子技术基础

上海交通大学一九九九年硕士研究生入学考试试题 电子技术基础

上海交通大学一九九九年硕士研究生入学考试试题试题编号:16试题名称:电子技术基础(含数字电路与模拟电路)一、放大电路为图一所示,三极管参数为β1和β2,R be1,R be2,U BE=0.7V,设电容为足够大。

1、指出T1,T2各起什么作用。

2、估算静态时的电流ICQ1。

3、写出中频时电压放大倍数AU,输入电阻Ri和Ro的表达式。

(8分)一、判别下图所示电路中,级间交流反馈的组织和组态,若是负反馈则计算在浓度负反馈系数和闭环电压增益A uf=U0/U I,设各三极管的参数为β,R be为已知,电容足够大。

(8分)二、在下图的放大电路中,已知三极管的β=100,UBE=0.7V Rbe1=R be2=43.4KΩ,稳压管D2=6.7V,A为理想运放。

试求1、电压放大系数Au=U0/U i1-U i2=?2、运算放大器A的共模输入电压UIC=?共模输出电压UOC=?三、一种增益可调的差动数大电路如下图所示,试推导出其输入与输出的关系式,设A为理想运放。

(8分)UU四、由理想运放组成的电路如下图所示,设UI=V M cosωt,β>>1,试求输入信号电流i0EE六、下图是用热敏电阻Rt作检测元件的测温电路,该Rt每度变化1Ω,在0°C时R t=1KΩ.三极管的β>>1,U BE=0.7V。

1、表头每伏对应几度?2、设A1和A2的CMRR为无穷大,A3的CMRR为100dB。

试估算由此引进的测量误差是多少度?七、下图所示电路中,A1,A2为理想运放,二极管D的正向压降为0.6V,动态电阻很小,反向电流为零。

1、画出U01,U02的波形,要求时间坐标对应,标明电压幅值。

2、求振幅频率f与输入电压Ui的近似函数关系式。

3、设Ui为一缓慢变化的锯齿波,试定性画出U02的波形。

(10分)一、下图所示电路是一个多功能函数发生器,其中,C1,C2,C0均为控制信号,x,y为数据输入:1、试列表说明当C2C1C0为不同取值组合时,输出端L的逻辑功能(L( x,y))的表达式。

上海交通大学一九九九年硕士研究生入学考试试题

上海交通大学一九九九年硕士研究生入学考试试题

上海交通大学一九九九年硕士研究生入学考试试题试题编号:17试题名称:微型计算机原理与应用(含数字电路)1、计算(10101.01)2+(10101.01)BCD+(15.4)16=( )102、已知[x]补=00110101,则[-2x]补=_______3、一个四位十进制数,当用规格化浮点数(阶码及尾数均用补码表示)表示时,最少需要多少位二进制数?4、用“与非“门构成一个半加器电路,并写出其真值表和逻辑表达式。

5、下图所示用四个D触发器构成的逻辑电路的功能是什么?6、8086/8088CPU在结构上由哪两个独立的处理单元构成?这样的结构其最主要的优点是什么?7、用指令SUB对两个8位二进制数据进行减法运算后,得到结果为0FAH,以及标志位OF=“1“,SF=“1“和CF=“1“,这个结果表示的十进制数值是多少?8、已知ORG 0100HARY DW 3,$+4,5,6CNT EQU $-ARYDB 7,8,CNT,9则执行指令MOV AX,ARY+2和MOV BX,ARY+10后AX=__________,BX=______.9、今需在变量名为STRING的数据区中顺次存放数据’A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,请写出分别用汇编命令DB、DW、DD实现的语句。

10、设寄存器DX:AX中为有符号双字数据,请用移位指令编写一段程序使DX:AX中的内容成为原值的1/4。

11、阅读下列程序段,说明该程序段的功能。

AGAIN: MOV AH,01HINT 21HCMP AL,41HJB AGAINCMP AL,5AHJA AGAINMOV DL,20HMOV AH,02HINT 21H12、说明下列子程序的功能SUBRT PROCTEST AL,80HJE APOSTEST BL,80HJNE EXITJMO XHNGAPOS: TEST BL,80HJE EXITCHNG: XCHG AL,BLEXIT: RETSUBRT ENDP13、下图为8086存储器电路接线图(注,为简洁起见,图中仅画出了部分电路)此时存储器的总容量为_______________;存储器芯片M0的最大地址是____________;存储器芯片M1的最大地址是____________。

上海交大程序设计试题样题及参考答案

上海交大程序设计试题样题及参考答案

程序设计试题样题及参考答案一.选择题1. 若用数组名作为函数调用的实参,传递给形参的是A。

A.数组的第一个元素的地址。

B.数组第一个元素的值。

C.数组全部元素的地址。

D.数组全部元素的值。

2. 在C程序中,main() 的位置C。

A. 必须作为第一个函数。

B.必须作为最后一个函数。

C.可以任意。

D.必须放在它调用的函数之后。

3、下列程序中,编译不会出错的语句是 A 。

#include <iostream.h>class Base{public:Base(){}Base(int i) { data = i; }private:int data;};class Derived: public Base{public:Derived():Base(0) {}Derived(int x):Base(x){}};int main(){Derived d1(1);Base *pb,b1;pb = &d1; //Ad1 = b1; //BBase &refB = d1;Derived d2 = *pb; //CDerived &refD = refB; //Dreturn 0;}答案:A注释:公有继承时,派生类是基类的子类型,反之则不成立。

具有子类型关系的基类和派生类的对象之间满足如下赋值兼容规则: 派生类对象的地址可以赋值给指向基类的指针;♦派生类的对象可以初始化基类的引用;派生类的对象可以赋值给基类的对象,即用派生类对象中从基类继承来的成员,逐个赋值给基类对象的成员。

4、判断fun,Y3::fun,Z2::fun中的各条语句是正确/错误。

class X{public:int a;};class Y1 : public X{ };class Y2 : protected X{ };class Y3 : private X{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};class Z2 : public Y2{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};void fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //①py2->a = 7; //②py3->a = 7; //③}void Y3::fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //④py2->a = 7; //⑤py3->a = 7; //⑥}void Z2::fun(Y1 *py1,Y2 *py2,Y3 *py3){ py1->a = 7; //⑦py2->a = 7; //⑧py3->a = 7; //⑨}答案:①正确②错误③错误④正确⑤错误⑥正确⑦正确⑧错误⑨错误注释:♦派生类Y1从基类X公有继承,基类成员a在Y1中仍然是公有成员,所以Y1类型的指针py1可以可以访问a成员,因此①④⑦正确。

年研究生考试数据结构及程序设计技术试题

年研究生考试数据结构及程序设计技术试题

上海交通大学1989年研究生考试数据结构及程序设计技术试题一、1〕填空(12分)函数P(N)判定N是否为质数P(N)=TURE 如果N是质数FALSE 如果N不是质数其中N大于等于2,请在程序划线处填入正确语句:type Numtype=2 maxitn;function P1(x,k:numtype):boolean;beginif _______then p1:=tureelse p1:= _______andp1(x,k+1)end;function p(x:numtype):boolean;beginp:=p1(x, _______)end;2)(8分)函数F定义如下:function F(x:integer):integer;Var y,u:integer;BeginY:=0;u:=1;While u<=x doBeginY:=y-1;U:=u+2*y+1End;F:=yEnd问:A。

F(12)=?B。

F的功能?二(20分)设文件P.PAS中存有一语法正确的PASCAL源程序,其中字母均为小写。

请写一程序,输出P.PAS中第一个保留字begin所在行。

提示:设OPEN语句格式为OPEN(<文件变量>,<文件名>)三(共30分,每题6分)1、已知一棵四次树,其结点数据场之值为一英文大写字母。

现给出该二叉树的前序周游结构(按前序打印数据场之值)及每个结点的次数如下:前序:A,B,C,F,G,D,H,J,K,M,N,E,I次数:4,0,2,0,0,1,1,3,0,0,1,0,1,0试画一图形表示该四次树。

2、有人说:“队列和栈都是优先队列的特殊情况”,这句话对吗?如果不对,请说明理由。

如果正确,回答为什么并给出如果用优先队列实现栈和队列的方法。

3、已知如图所示的有向图,试求出:每个结点的最早完成时间TE值及最晚完成时间TL值。

求出关键活动及关键路径。

4、采用多阶段合并分类法合并若干条磁带上的文件为一有序文件,当最初合并段不是标准fibonacci数时。

上海交通大学一九九八硕士研究生入学考试试题

上海交通大学一九九八硕士研究生入学考试试题

上海交通大学一九九八年硕士研究生入学考试试题试题名称:数据结构和程序设计技术试题编号: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。

2004年上海交通大学研究生数据结构试题

2004年上海交通大学研究生数据结构试题

2004年上海交通大学研究生数据结构试题一、已知一棵中序线索二叉树的结点结构为:其中:data 域的类型为int。

ltag=0,那么left域中存放的是该结点的左儿子结点的地址。

ltag=1,那么left域中存放的是该结点的按中序周游次序的前驱结点的地址。

rtag=0,那么right域中存放的是该结点的右儿子结点的地址。

rtag=1,那么right域中存放的是该结点的按中序周游次序的后继结点地址。

现已知该中序线索树中,按照中序遍历次序的第一个结点的地址为first,以及某一整数值为key。

请写一个函数,输出结点的data之值为key 的结点,并仍保持中序线索树的性质不变。

注意:不准使用递归,额外空间不得大于O(1)。

(本题25 分)要点:1、注意,题目给出的是按照中序遍历次序的第一个结点的地址first,因此必须从first开始查找data之值为key 的结点p及其父结点q,而不能从根结点开始进行寻找。

2、若结点p是q的右儿子,可分四种情况进行讨论:A、结点p是叶子。

B、结点p无左儿子,但有右儿子。

C、结点p有左儿子,但无右儿子。

D、结点p既有左儿子,同样也有右儿子。

在进行调整后,注意保持调整后的中序穿线树的结点的中序遍历次序不变。

3、若结点p是q的左儿子,同样有四种情况必须讨论,同2。

二、已知一棵二叉树是以二叉链表的形式存储的,且结点的数据场的类型为int。

现已知该二叉树的根结点的地址为root。

请写一个非递归的函数(使用的额外空间不得大于O(1)),给出按后序遍历次序的第一个结点的数据场之值。

(本题10分)要点:根据后序周游的定义:LRN 可知第一个被访问的结点将是二叉树中的最左方的叶子,设p=root,若p 为空,则无解返回,否则有三种情况。

1。

若有左儿子,则p=p->left;2。

若无左儿子,但有右儿子,则p=p->right;3。

若既没有左儿子,也没有右儿子,则p即为所求。

上海交通大学数据结构2000真题

上海交通大学数据结构2000真题

上海交通大学2000年考研专业课试卷数据结构上海交通大学2000年研究生入学试题一. 模式匹配算法是在主串中快速寻找模式的一种有效的方法.如果设主串的长度为m,模式的长度为n,则在主串中寻找模式的KMP算法的时间复杂度是多少?如果,某一模式P=’abcaacabaca’,请给出它的NEXT函数值及NEXTVAL的值。

二. 请推导出在伪随机探测,再散列情况下,在长度为m的哈希表中,装填有n个记录时查找不成功的平均查找长度的公式。

注意:假定哈希表函数试均匀的。

即产生表中的各个地址的概率相等;处理冲突后产生的地址是随机的,装载系数为:α=n/m.三. 一棵三次有序树其前序,后序的周游结果为:前序:A,B,C,D,E,F,G,H,I后序:B,C,G,H,F,E,I,D,A则该三次有序数用图形表示为什么?四.含有n个关键字的m阶B_树的最大深度是什么?请证明。

五.请填充下面的表格:(以大O表示)最好的情况的时间复杂度最坏的情况的时间复杂度平均情况下的时间复杂度额外空间的需求快速排序堆排序直接插入排序简单选择排序六.利用比较的方法进行排序,在最坏的情况下,能达到的最好时间复杂度是什么?请给出详细证明。

七.设有序表的长度为n=(2^h)-1( 表示为2的h次幂h 为正整数如h=1,2,3,……).假设表中每个记录的查找概率相等,则查找成功时的平均查找长度为多少?请证明。

在查找不成功时,和表中的记录进行比较的次数最多时多少?请证明。

八.某算法所需要的时间由下述方程表示,试求出算法的时间复杂性的级别(以大O表示)。

注意n 为求解问题的规模,为简单起见,设n是2的正整数幂。

1 如果n=1T(n)=2T(n/2)+n 当n >1九.用置换选择排序法产生文件F(长度为n)的初始并归段设内存缓冲区的长度为m,(1)平均情况下,初始归并段的长度为多少?为什么?(2)初始归并段的长度最长与最短时,其长度分别为多少?在和情况下出现,简单解释一下。

上海交通大学历年硕士研究生入学考试(计算机体系结构和组成原理论题)试题

上海交通大学历年硕士研究生入学考试(计算机体系结构和组成原理论题)试题

上海交通大学历年硕士研究生入学考试(计算机体系结构和组成原理论题)试题上海交通大学1998年硕士研究生入学考试试题一、填空题(10分)1、设X=-69,字长n=8(含一位符号位),则x的原码为 11000101 ,x的补码为 10111011 ,x的移码为 00111011 。

2、x=0.0101,y=0.1001,n=5,则x-y的补码为______。

操作后状态寄存器中z=______,v=______,n=______.3、一个纠错码的全部码字为0000000000,0000011111,1111100000,1111111111,它的海明距离为______,可纠正______个错误,如果出现了码字010*******,应纠正为______。

4、在总线裁决中,有串行链结式、______和______三种方式。

5、磁盘存储器的磁记录方式有归零制、______、______和______等。

6、计算机性能的统计方式常用算术平均、______和______三种计算方法。

7、计算机的计算模型有控制驱动、______、______和______四种类型。

二、名词解释(10分)解释下列名词,从词意、用途、原理及特征等方面说明。

1、相联存储器2、基准测试程序3、VLIW4、软件流水5、伯恩斯坦准则三、计算题1、已知z和y的二进制为x=0101,y=0110,用布斯乘法计算[x*y]补(6分)2、设浮点数的格式为:第15位:符号位;第14位到第8位:阶码,采用补码表示;第7位到第0位:尾数,与符号位一起采用规格化的补码表示,基数为2,问:(1)它能表示的数值范围是什么?(2)它能表示的最接近于0的正数和负数分别是什么?(3)它共能表示多少个数值?请用十进制数2的幂次表示。

(6分)3、某计算机有10条指令,它们的使用频率分别为0.35,0.20,0.11,0.09,0.08,0.07,0.04,0.03,0.02,0.01试用霍夫曼编码对它们的操作码进行编码,并计算平均代码长度。

上海交通大学历年研究生考试计算机原理与系统结构试题

上海交通大学历年研究生考试计算机原理与系统结构试题

上海交通大学1995年硕士研究生入学考试试题计算机原理与系统结构A. 计算机原理部分一、选择题:(每小题1.5分,总共12分)1.用n+1位字上(其中1位后号位)表示定点整数时,所能表示的数位范围是________;用n +1位字长(其中1位符号位)表示定点小数时,所能表示的数值范围是___________。

A、0≤│N│≤2n-1;B、0≤│N│≤2n-1-1;C、1≤│N│≤2n-1-1;D、1≤│N│≤2n-1;E、0≤│N│≤1-2-nF、0≤│N│≤1-2-(n+1).2.堆栈寻址方式中,设A为累加的;SP为堆栈指示器,Msp为sp指向的栈顶单元,如果过棋操作的动作是:(A)→Msp,(sp)-1→sp,那么出栈,操作的动作应为______。

A、(Msp)→A,(sp)÷1→spjB、(sp) +1→sp; (Msp) →AC、(sp)-1→sp,(Msp) →AD、(Msp) →A, (sp)-1→sp3.位操作频指令的功能是______。

A、对cpu内部通用序宰存或主存某一单元任一位进行状态检测(0或1);B、对cpu内部通用宰存或主存某一单元任一位进行状态强置(0或1);C、对cpu内部通用宰存或主存某一单元任一位进行状态检测式强置;D、进行移位操作。

4、微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题,通常,用的一种方法是断定方式,其基本思想是_______。

A、用程序计设加pc来产生后很微指令地址;B、用微程序计数加Mpc来产生后很微指令地址;C、通过微指令顺序控制字段由设计者指定或者由设计者指定的判断别字,段控制产生后很微指令地址;D、通过指令中指定一个专门字段来控制产生后很微指令地址。

5、磁盘存储加的记录方式一般采用_________。

A、归察制;B、不归察制;C、调频制;D、调相制6、同步通讯之所以比异步通讯具有较高的传输连享是因为_______。

上海市考研计算机复习资料数据结构与算法分析

上海市考研计算机复习资料数据结构与算法分析

上海市考研计算机复习资料数据结构与算法分析在考研复习中,数据结构与算法分析是计算机专业考生必备的重要知识点。

掌握这门课程的基本理论和核心算法对于考生的顺利通过考试至关重要。

在本文中,将为考研计算机专业的同学们提供一份完整的上海市考研计算机复习资料,针对数据结构与算法分析进行详细讲解。

第一部分:数据结构基础1. 线性表在数据结构中,线性表是最基础的数据类型之一。

它包括顺序表、链表、栈、队列等。

我们将详细介绍每种线性表的定义、特点和常见操作,并给出相应的代码实现。

2. 树与二叉树树是一种非线性结构,常用于解决需要多层次表达的问题。

我们将介绍二叉树的性质、遍历方式以及常见的二叉树操作,例如插入、删除和查找等。

3. 图图是一种复杂的数据结构,常用于描述网络、地图等问题。

我们将详细介绍图的定义、图的存储方式以及图的遍历算法。

此外,还会讲解图的最短路径算法和最小生成树算法等关键问题。

第二部分:算法分析1. 时间复杂度时间复杂度是描述算法执行时间和输入规模关系的度量方式。

我们将介绍大O记法和常见的时间复杂度,帮助考生们分析算法的执行效率。

2. 空间复杂度空间复杂度是描述算法在执行过程中所需的存储空间的度量方式。

我们将介绍常见的空间复杂度分析方法,帮助考生们优化算法的空间占用。

3. 排序算法排序算法是数据结构与算法分析中最重要的部分之一。

我们将详细介绍几种常见的排序算法,包括冒泡排序、插入排序、选择排序、快速排序等。

同时,我们会比较这些排序算法的时间复杂度和空间复杂度。

4. 查找算法查找算法是在给定数据集中寻找指定元素的过程。

我们将介绍常见的查找算法,包括线性查找、二分查找、哈希查找等。

同时,我们还会分析这些算法的时间复杂度和适用场景。

第三部分:习题与解析为了帮助考生们更好地巩固所学知识,我们提供大量的习题和解析。

习题涵盖各个知识点,并分为基础练习和提高练习两个难度级别。

解析部分会提供详细的解题思路和步骤,帮助考生们理解算法的实现过程。

数据结构习题及参考答案_上海交通大学成人教育学院

数据结构习题及参考答案_上海交通大学成人教育学院

A.基地址 B.结点大小 C.向量大小 D.基地址和结点大小 12. 在等概率情况下,顺序表的插入操作要移动______结点。 A.全部 B.一半 C.三分之一 D.四分之一 13. 在______运算中,使用顺序表比链表好。 A.插入 B.删除 C.根据序号查找 D.根据元素值查找 14. 在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是 _______。 A.O(1) B.O(n) 2 C.O(n ) D.O(log2n) 15. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列__________。 A.A, B, C, D, E B.B, C, D, E, A C.E, A, B, C, D D.E, D, C, B, A 16. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈 顶指针,当做出栈处理时,top变化为______。 A.top不变 B.top=0 C.top-D.top++ 17. 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行______。 A.hs->next=s; B.s->next=hs; hs=s; C.s->next=hs->next;hs->next=s; D.s->next=hs; hs=hs->next; 18. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针, 则判断队满的条件为________。 A.rear%n= = front B. (front+l)%n= = rear C.rear%n -1= = front D.(rear+l)%n= = front 19. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针, 则判断队空的条件为________。 A.rear%n= = front B.front+l= rear C.rear= = front D.(rear+l)%n= front 20. 在一个链队列中,假定 front和rear分别为队首和队尾指针,则删除一个结点的操作为 ________。 A.front=front->next B.rear=rear->next C.rear=front->next D.front=rear->next 二、填空题 1. 线性表是一种典型的_________结构。 2. 在一个长度为n的顺序表的第i个元素之前插入一个元素,需要后移____个元素。 3. 顺序表中逻辑上相邻的元素的物理位置________。 4. 要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需_______一个位置, 移动过程是从_______向_______依次移动每一个元素。 5. 在线性表的顺序存储中,元素之间的逻辑关系是通过_______决定的;在线性表的链接 存储中,元素之间的逻辑关系是通过_______决定的。 6. 在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_______ 结点。 7. 当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用 _______存

上海交通大学工程硕士算法考试资料

上海交通大学工程硕士算法考试资料

上海交通大学工程硕士算法总结a.知识点:第一章: 复杂度(简单),欧几米德算法(中等),模运算(中等),算数运算第二章: 大师定理(简单,重要!)第三章: DFS算法(简单,重要!),寻找子部件(中等),图的反转第四章: BFS,Dijsktra算法(中等,重要!),bellman-ford(难)第五章: 最小生成树(中等)第六章: DAG(中等),背包问题(中等,重要!),独立集第七章: 线性规划的解(简单),最大流(中等),对偶(中等,重要!)b.作业(知识点):第一章: 0.1(复杂度),0.2(复杂度),1.2(扩展欧几里得),1.31(复杂度) [难],1.35(逆/费马小定理/模运算)[难]第二章: 2.5(大师定理),2.19(大师定理),2.22(大师定理)[难]第三章: 3.7(DFS),3.11(DFS),3.28(SAT)[难],第四章: 4.11(Dijkstra),4.12(Dijkstra),4.16(2分堆/d堆)第五章: 5.20(完美匹配),5.23(最小生成树),5.26(约束问题)第六章: 6.17(背包),6.21(最小覆盖/独立集),6.22(背包)第七章: 7.6(简单规划),7.7(线性规划的解),7.21(临界边)[难],7.23(归约问题)[难]红/黄/绿指重要度依次降低.注意:作业并不涵盖所有考点.c.考试注意点:1.在图计算中运用了标记,删边,反向等技巧,结合最短路径和DFS等进行计算.2.贪心算法出题比较无规则.3.大师定理,线性规划中的对偶,须理解背熟.几乎是必考.知识点详细:1.复杂度-->如无特殊要求复杂度一般只要表示为大O即可.*常数系数忽略*阶乘>指数>多项式>log*复杂度Θ的证明需要证明O和Ω2.加减的复杂度(n),乘除的复杂度(n2,或者n x m),(乘法可以更加简化)模运算(平方)*满足结合律,分配律,交换率*指数运算可记3.欧几里得算法*辗转相除法求最大公因数(练习)*扩展欧几里得算法求逆元4.逆元*ax=1(modN)成立,则x是关于a模N的一个乘法逆元*gcd(a,N)=1(互质)时,存在x和y,使得ax+Ny=1,x就是要找的逆元(因为y是可以约掉的),利用扩展欧几里得来计算此逆元.(可能性大)*练习一遍很重要5.大师定理*把一个问题分解为相同的子问题,通过子问题的规模,数量和合并子问题的代价可以计算整个问题的复杂度,牢记公式.*大师定理排列问题比较容易出到(归并排序).6.无向图*explore(重要)不断寻找相邻的结点,会变例可到达部分,不连通部分不访问.*DFS(重要)对图中每个点做前序和后序标记,然后运行explore,不连通部分也访问.前序和后序有些特殊性质.7.有向图*DFS(O(|V|+|E|))有向图一般运行DFS,运行后可以得到一颗树.有树边,前向边,回边,横跨边*强连通部件特殊的在这里寻找强连通部件运用了explore算法,整个算法复杂度同DFS.*输出图中所有强连通部件的步骤DFS后标记postpost最大点在源点强连通部件中(post排序)把图反转(每条边反转)explore找到一个强连通部件,也就是源点强连通部件删除后可以寻找下一个(post最大的)8.最短距离*BFS,用于距离的算法,对象无权图无权图的最短路径(O(|V|+|E|))*Dijkstra(采用数组是O(|V|2)),BFS扩展算法,适合边正的有权图迪杰斯特拉算法:预期不会有更长边,因而不适用于负边存在的情况有权图的最短路径*Bellman-ford,BFS扩展算法带负权值的最短路径,对比两点间全部可能的路径,可以使用与负边情况,但是注意,负环存在的情况下没有最短距离.*二分堆上述算法的数据结构9.最小生成树*分割性质两个点集间权重最轻的边总是可以加到最小生成树上(如果能连到树上) *Kruskal算法不断寻找最小边然后合并的过程,包括makeset(x)find(x)union(x,y)10.DAG最短路径*使用一维表计算DAG最短路径11.DAG最长递增子序列*一维表(考试要求的是表达式)12.背包问题*多副本背包一维表,每增加一点价值v为一格,每个格有n种可能性,复杂度nv.习题对应硬币问题.*单副本背包二维表,价值和物品建立一个二维表可得.习题中有对应.13.树的独立集*同样只是个表达式,只能用于树而不能用于图.14.网络流*最大流问题,利用剩余图来解决,即explore剩余图起点既可得到一个最大流的所有边.最小分割最大流定理15.二部图匹配*增加源点和汇点并求最大流(归约),注意二部图的源点汇点是人工增加的,说明加点是一种技巧.16.对偶*写出对偶表达式对偶的写法:题目(喜闻乐见):必考题目,第一梯队:1.大师定理相关(遇题请先上公式)2.有向图相关(涉及回边/横向边/树边),注意和这有关系的是DFS的标记.3.动态规划(20分) --> 估计是二维表,形式可能类似于编辑距离的计算,和最长公共子序列/串相关.(注意必须写出表达式,应该要比背包问题复杂)4.线性规划之对偶据说只有3题的剩余自由空间了,第二梯队:可能性比较大的有:第一章==> 复杂度/扩展欧几里得求逆元选一或者一起第四章==> Dijkstra/二分堆/bellman-ford(可以会一起出)第五章==> Kruskal+Disjoint set/割原理/集合覆盖(注意:老师很喜欢集合覆盖类问题,但是没有讲要考,比较危险)剩下提到要考的但是和已知章节冲突,第三梯队:背包/单纯形法/网络流/二部图匹配等关于证明题:if and only if形式要证明if和only if,只要给出形式就给分.也就是说,对于证明题, =/<=>/Θ这几种形式,必须正反证明.如果没有时间,先证明简单的一种.可能会出现复杂度运算的题目.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海交通大学1990年研究生考试数据结构及程序设计技术试题
一、回答下述问题(25分)
1、已知10万个无序的,且互不相等的正整数,现要求找出前10个最大的正整数。

采用以下五种分类法:快速分类法,合并分类法,选择分类法,堆分类法,SHELL分类法。

试问,那一种方法将能最快地找出这前十个最大的正整数?为什么?
2、在外部分类时,常采用多阶段合并分类法。

假定采用二路多阶段合并分类法。

合并开始时,磁带T1分布有Fs-1个合并段,磁带T2分布有Fs-2个合并段,磁带T3为空白带,假定每个合并段都有M个记录。

注意,Fs-1,Fs-2分别为fibonacci数列的第S-1及S-2项。

试推导出在合并分类结束时,记录读写的总次数9(推导出和式即可)
3、求下列样品的失效函数:
(1) P1=aaaaaa
(2) P2=abcabdaaabc
(3) P3=abcabdabeabc
4、已知字母a,b,c,d,e,f,g,h的使用频率分别为40%,20%,10%,8%,8%,5%,5%,4%;给出这8个字符的HUFFUMAN编码,要求给出求解步骤。

5、可否使用拓扑分类算法,确定所给有向图是否有回路?如何实现,为什么?
6、求出下图的关键路径,结点的最早完成时间,结点的最晚完成时间及关键活动。

二、(15分)
设计一个程序,以一序列正整数,如:78,45,2,14,23,…作为输入,生成一棵中序穿线二叉树。

三、(10分)
已知一棵以标准形式存贮的三次有序树。

设计一个程序,将该有序树转化成相应的二叉树(同样以标准形式存贮)。

四、(10分)
假定在平衡分类二叉树中,进行结点删除操作之后,出现了不平衡。

试作图说明,如何针对各种不平衡的情况进行调整,使该数恢复为平衡分类二叉树。

五、(10分)
研制一程序,将十进制数N转换为R(2<=R>=16)进制数的数字串。

六、(15分)
回答问题
1、你认为评价程序质量的标准是什么?
2、什么是函数的副作用?
七、(15分)
研制一个求K个数的最大公约数的程序。

相关文档
最新文档