计算机专业基础813,【考研真题】2019北京理工大学813计算机专业基础考研真题...

3e173ddcbaed3401bc9e7bd0d57249f3.png

数据结构部分

一、填空题

1、L是单向循环链表的指向头结点的指针,判断链表是否为空的条件是______

2、一颗排序二叉树有n个结点,深度为d,则插入一个结点的时间复杂度为____

3、链队列的入队的时间复杂度是_____

4、

二、判断题

1、哈夫曼树是一颗平衡二叉树

2、在拓扑排序中,如果Vi在Vj之前,说明存在一条从Vi到Vj的路径。

3、

三、选择题

1、给出了一种结构

typedef struct {

……

}LNode, *List

问定义一个这种类型的指针的语句是?

A、LNode L    B、List L  C、List *L  D、都不对

2、适合存储边稠密图的结构是

A、邻接表  B、邻接矩阵 C、逆邻接表  D、都不对

四、简答题

1、给出了一个静态链表SAPCE[MAXSIZE],大概这样

(1)画出对应的链表。(应该是这么问的,我就把静态链表看成链式存储结构画了出来)

(2)画出从静态链表中删除H后的SPACE[MAXSIZE];

(3)定义了静态链表结点类型,请写出删除函数void free( position k)

typedef int position;

typedef struct{

elemtype data;

position k;

}SPACE[MAXSIZE];

(4)和顺序表相比,静态链表的主要优点是?

(5)和链式存储结构相比 ,静态链表的主要优点是?

2、给了一种表达式树,A*(B+C*D)的表达式树如图

(1)写出前序、中序、后序遍历的序列

(2)写出A*(B+C*D)的后缀表达式

(3)构造表达式树需要一个栈和后缀表达式,问栈的元素的类型是什么?简要说说构造表达式树的方法。

(4)按照上述方法,画出构造表达式树时栈内元素的变化情况。

3、

(1)说明希尔排序为什么比直接插入排序效率高

(2)给了一个包含10个数的序列,增量序列分别是5、3、1,写出每一趟排序后的结果。

(3)给了希尔排序的算法的代码,要求补全。

(4)若要排序大块文件的话,希尔排序的效率特别低,请设计一种方法,使得每次只需要移动一趟。(这题我也记得很模糊,具体问法参考一下其他的回忆试题)

五、算法题

1、定义循环队列的结构

typedef struct {

int MAXSIZE;

int front;  //指向队头元素

int num;  //指出队内元素个数

elemtype * Elems;// 指向存储队列区域的指针。

}*Queue;

(1)写出建立一个队列的函数Queue CreateQueue(int MAXSIZE)

(2)写出删除队列的函数void DeleteQueue(Queue Q);

(3)写出将一个元素入队的函数 void EnQueue(Queue Q, elemtype k)

(4)写出返回队头元素并将其删除的函数elemtype DeQueue(Queue Q)

3、有向无权图的顶点用数字表示。现要计算从源点S到其他顶点的最短路径。LAST[MAXSIZE]是一个数组,LAST[w]=v表明从S到点w的最短路径的最后一条弧是。LAST[w]=0表示w是源点S或者没有从S到w的最短路径。给出了一个表格。

(1)找出源点S是哪一点。

(2)写出从源点到其他各点的最短路径

(3)补全利用BFS寻找源点到其他各点最短路径的代码。(不难)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值