大连理工大学数据结构2003年硕士入学试题

大连理工大学2003年硕士入学试题

数据结构部分(共75分)

一、回答下列问题(20分)

1.循环队列用数组A[0..m---1)存放其数据元素。设tail指向其实际的队尾,front指向其实际队首的前一个位置,则当前队列中的数据元素有多少个?如何进行队空和队满的判断?

2.设散列表的地址空间为0~10,散列函数为H(key)=key%11(%为求余函数),采用线性探查法解决冲突,并将键值序列{15,36,50,27,19,48}依次存储到散列表中,请画出相应的散列表;当查找键值48时需要比较多少次?

3.什么是m阶B-树?在什么情况下向一棵m阶B-树中插入一个关键字会产生结点分裂?在什么情况下从一棵m阶B-树中删除一个关键字会产生结点合并?

4.什么是线索二叉树?一棵二叉树的中序遍历序列为由djbaechif,前序遍历序列为abdjcefhi,请画出该二叉树的后序线索二叉树。

二、请用类C或类PASCAL语言进行算法设计,并回答相应问题。(45分)

1.设计一非递归算法采用深度优先搜索对无向图进行遍历,并对算法中的无向图的存储结构予以简单说明。

2.用链式存储结构存放一元多项式Pn(x)=P1xel+P2xe2+...+Pnxen,其中Pi是指数为ei的项的非零系数,且满足0≤e1≤e2...<en=n。请设计算法将多项式B=Pn2(x)加到多项式A=Pn1(x),同时对算法及链表的结点结构给出简单注释。要求利用Pnl(x)和Pn2(x)的结点产生最后求得的和多项式,不允许另建和多项式的结点空间。

3.(1){Rl,R2,...,Rn}为待排序的记录序列,请设计算法对{R1,R2,...,Rn}按关键字的非递减次序进行快速排序。

(2)若待排序的记录的关键字集合是{30,4,48,25,95,13,90,27,18),请给出采用快速排序的第一趟、第二趟排序结果。

(3)若对(2)中给出的关键字集合采用堆排序,请问初建的小根堆是什么?

(4)当给定的待排序的记录的关键字基本有序时,应采用堆排序还是快速排序?为什么?

三、算法填空(10分)

1.一棵树以孩子兄弟表示法存储,递归算法numberofleaf计算并返回根为r的树中叶子结点的个数(NULL代表空指针)。

typedef struct node{struct node *firstchild,*nextbrother;}TFNNode;

int numberofleaf(TFNNode *r)

{ int num;

if(rNULL) num=0;
else
if(r->firstchildNULL)

num= +numberofleaf;

(r->nextbrother);

else ;

return(num);

}

2.在根结点为r的二叉排序树中,插人数据域值为x的结点,要求插入新结点后的树仍是一棵二叉排序树(NULL代表空指针)。

二叉排序树的结点结构为

typedef struct node

{ int key;

struct node *lc,*rc;

}BiNode;

BiNode *insert(BiNode *r,int x)

{ BiNode *p,*q,s;
s=(BiNode
)malloc(sizeof(BiNode));

s->key=x;

s->lc=NULL;s->rc=NULL;

q=NULL;

if(r==NULL) {r=s;return®;}

p=r;

while( )

{ q=p;

if( ) p=p->lc;

else p=p->rc

}

if(xkey) ;

else ;

return;

}

相关推荐
yi01110 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
禾小西13 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
H.莓飛14 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
好想像大佬一样能够ak所有14 小时前
Leetcode35.搜索插入位置
数据结构·算法·leetcode
chenbingjie_c15 小时前
C++ STL 适配器:stack & queue,从 vector/list 到 deque 深度解析
数据结构·c++
垆边人似月.18 小时前
华为OD算法题:查找众数及中位数
数据结构·算法·leetcode
CoderYanger19 小时前
一轮复习——F.动态规划模型总结(入门篇)
java·开发语言·数据结构·算法·leetcode·职场和发展·动态规划
一只旭宝20 小时前
数据结构与算法复习手册:从写过,到讲清楚
开发语言·数据结构·c++·算法
All for pursuit.21 小时前
【动态规划-1】121.买卖股票的最佳时机
数据结构·c++·算法·leetcode·动态规划
Logic10121 小时前
C语言/数据结构位运算题解:异或XOR找出优秀项目组中的“独特编号“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质