考研数据结构大题整合_组三(LZH组)

news2024/11/24 17:06:28

考研数据结构大题整合

目录

  • 考研数据结构大题整合
    • 三、LZH组
      • LZH 组一
      • LZH 组二
      • LZH 组三
      • LZH 组四
      • LZH 组五
      • LZH 组七

三、LZH组

LZH 组一

给出如图所示的无向图G的邻接矩阵和邻接表两种存储结构.
在这里插入图片描述


(2)解答下面的问题(6分)
(1) 求网的最小生成树有哪些算法?各适用何种情况?为什么?
(2) 由以下的网络邻接矩阵,画出一棵最小生成树
在这里插入图片描述


(3)已知一棵非空二叉树,其按中根和后根遍历的结果分别为:
中根:CGBAHEDJFI 后根:GBCHEJIFDA
试将这样的二叉树构造出来。若已知先根和后根的遍历结果,能否构造出这棵二叉树,为什么? 5分


(4)一项工程由P1、P2、…P6六项子工程组成, 这些工程之间有下列关系: P1<P2,P3<P6,P4<P3,P2<P6,P4<P5,P1<P3,P5<P6,符号“<”表示“先于”关系,例如P2<P6表示P2完成后P6才能开始。请给出工程P的三种可能的施工顺序。 (6分)


(5)假定用于通信的电文由8个字母A,B,C,D,E,F,G,H组成,各字母在电文中出现的概率为5%,25%,4%,7%,9%,12%,30%,8%,试为这8个字母设计哈夫曼编码。(7分)


五、 (1) 读程序,分析其时间复杂度: 4分

m = 91;
n = 100;
while (n > 0)
    if (m > 0)
    {
        m = m - 10;
        n = n - 1;
    }
    else
        m = m + 1;

此程序的时间复杂度是____________ 。


(2)以下程序为求二叉树深度的递归算法,请填空完善之 6分

typedef struct node
{
    char data;
    struct node lchild, rchild;
} *bitree;

int depth(bitree bt) /* bt为根结点的指针*/
{
    int hl, hr;
    if (br == NULL)
        return (____________);
    hl = depth(bt->lchild);
    hr = depth(bt->rchild);
    if (____________)
        ____________________
    return(hr + 1);
}

(3)已知N元整型数组a 存放N个学生的成绩,已按由大到小排序,以下算法是用折半查找方法统计成绩大于或等于x分的学生人数,请填空完善之。6分

#define N                 /*学生人数*/
int uprx(int a[N], int x) /*函数返回大于或等于x分的学生人数 */
{
    int head, mid, rear;
    do
    {
        mid = (head + rear) / 2;
        if (x <= a[mid])
            ____________________
        else________________;
    } while (____________);
    if (a[head] < x)
        return head - 1;
    return head;
}

(4)简述以下算法的功能:4分

void BB(LNode *s, LNode *q)
{
    p = s;
    while (p->next != q)
        p = p->next;
    p->next = s;
}
void AA(LNode *pa, LNode *pb)
{ // pa和pb分别指向单循环链表中的两个结点
    BB(pa, pb);
    BB(pb, pa);
}

LZH 组二

(2) 用普里姆算法构造出如图所示的图G的一棵最小生成树. 6分
在这里插入图片描述


(3)已知序列{17,18,60,40,7,32,73,65,85},请给出采用起泡排序法对该序列作升序排序时的每一趟的结果。 (6分)


(4)输入下列整数序列,画出建立的二叉排序树,最后分别图示将其中的50,86删除后的二叉排序树(7分)。
(86,50,78,59,90,64,55,23,100,40,80,45)


(5)一棵完全二叉树共有21个结点,现顺序存放在一个向量中,向量的下标正好为结点的序号,请问有序号为12的双亲结点存在吗?为什么?5分


五、 (1) 读程序,分析时间复杂度 4分

for (i = 0; i < m; i++)
    for (j = 0; j < t; j++)
        c[i][j] = 0;
for (i = 0; i < m; i++)
    for (j = 0; j < t; j++)
        for (k = 0; k < n; k++)
            c[i][j] = c[i][j] + a[i][k] * b[k][j];

此程序的时间复杂度是_________ 。


(2)以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之 6分

void reverse(pointer h)
{
    pointer p, q;
    p = h->next;
    h->next = NULL;
    while (__________)
    {
        q = p;
        p = p->next;
        q->next = h->next;
        h->next = _______________________;
    }
}

(3)二叉排序树的结点类型如下:6分

typedef struct node
{
    datatype data;
    struct node *lchild, *rchild;
} bitreptr;
请在下面算法划线处填上适当内容,以完成在二叉排序树中查找键值为k的结点。
    bitreptr *
    search(t, k) /*在二叉排序树上查找键值k的结点 */
                 /*成功时返回指向该结点的指针,否则返回空指针*/
{
    bitreptr *t;
    datatype k;
    if (t = = NULL)
        returen NULL;
    else if (t->data = = k)
        return t;
    else if (t->data > k)
        ________;
    else if (t->data < k)
        _____________;
} /*search*/

(4)阅读下述程序,指出其输出结果:4分

void g(int **);
main()
{
    int line[100], i;
    int *p = line;
    for (i = 0; i < 100; i++)
    {
        *p = i;
        g(&p);
    }
    for (i = 0; i < 100; i++)
        cout << line[i];
}
void g(int **p)
{
    (**p)++;
    (*p)++;
}

LZH 组三

四、画图/计算/证明 (30分)
1. 证明题(5分)
试证明有n0个叶子的哈夫曼树共有2n0-1个结点。


2.一项工程由P1、P2、…P6六项子工程组成, 这些工程之间有下列关系: P1<P2,P3<P6,P4<P3,P2<P6,P4<P5,P1<P3,P5<P6,符号“<”表示“先于”关系,例如P2<P6表示P2完成后P6才能开始。请给出工程P的三种可能的施工顺序。(5分)


  1. 已知一棵二叉树的中序遍历序列为:BAFDJGCKHLEIM,后序遍历序列为BFJGDKLHMIECA.请完成(6分)
    1. 构造出这颗二叉树;
    2. 画出这颗二叉树中序线索化后的结构

  1. 对长度为8的有序表,给出折半查找的判定树,给出等概率情况下的平均查找长度。(5分)

  1. (9分) 已知一个图G=(V,E),其中V={a,b,c,d,e,f};
    E={<a,b>,<a,d>,<a,e>,<d,e>,<e,b>,<c,b>,<c,e>,<c,f>,<f,e>}
    (1) 请画出该图,并写出邻接矩阵
    (2) 根据邻接矩阵,分别给出从顶点a出发的深度优先和广度优先遍历序列
    (3) 画出由此得到的深度优先和广度优先生成树(或森林)

五. 程序填空题 (20分,每个函数5分)

  1. 用链表表示数据的简单选择排序,结点的域为数据域data,指针域next,链表首指针为head,链表无头结点。
selectsort(head)
{
    p = head;
    while (p ___________)
    {
        q = p;
        r = ___________;
        while (___________)
        {
            if (q->next->data > r->data)
                q = r;
            r = ___________;
        }
        tmp = q->data;
        q->data = p->data;
        p->data = tmp;
        p = ___________;
    }
}

  1. n个顶点的有向图用邻接矩阵array表示,下面是其拓扑排序算法,试补充完整。注:
    (1) 图的顶点号从0开始计;
    (2) indegree是有n个分量的一维数组,放顶点的入度;
    (3) 函数crein用于计算顶点的入度;
    (4) 有三个函数push(data)、pop()、check(),它们的含义为数据data进栈、退栈和测试栈是否为空(不空返回1,否则返回0)。
#include <iostream.h>
    crein(array, indegree, n)
{
    for (i = 0; i < n; i++)
        indegree[i] = _______;
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            indegree[i] += array[_______][_______];
}

topsort(array, indegree, n)
{
    count = _______;
    for (i = 0; i < n; i++)
        if (_______)
            push(i);
    while (check())
    {
        vex = pop();
        cout << vex;
        count++;
        for (i = 0; i < n; i++)
        {
            k = array _______;
            if (_______)
            {
                indegree[i]--;
                if (_______)
                    push(i);
            }
        }
    }
}

3.设顺序表la的数据结构定义如下:

typedef struct
{
    Datatype list[Maxnum];
    int num;
} SeqList;

试将下面删除顺序表la中所有值为x的数据元素的算法补充完整。

void DeleteSeqList(SeqList *la, Datatype x)
{
    int j, k;
    for (j = 1; j <= la->num; j++)
    {
        if ()
        {
            for (k = j; k < la->num; k++)
                ;
            la->num--;
            j--;
        }
    }
}

LZH 组四

四、 画图/计算/证明/应用题 (30分)
(1) (6分)
试说明是否存在这样的二叉树,可以实现后序线索树进行后序遍历时不使用栈?对前序线索二叉树进行前序遍历时,什么样的二叉树可不使用栈?


(2)解答下面的问题(6分)
(1) 求网的最小生成树有哪些算法?各适用何种情况?为什么?
(2) 由以下的网络邻接矩阵,画出一棵最小生成树
在这里插入图片描述


(3)已知一棵非空二叉树,其按中根和后根遍历的结果分别为:
中根:CGBAHEDJFI 后根:GBCHEJIFDA
试将这样的二叉树构造出来。若已知先根和后根的遍历结果,能否构造出这棵二叉树,为什么? 5分


(4)对于如图所示的事件结点网络,求出各活动可能的最早开始时间和允许的最晚完成时间,并问哪些活动是关键活动? (6分)

在这里插入图片描述


(5)已知某字符串S共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用{0,1}进行前缀编码,问该字符串的编码至少有多少位?(7分)


五、 程序填空题 (20分)
(1) 读程序,分析其时间复杂度: 4分

m = 91;
n = 100;
while (n > 0)
    if (m > 0)
    {
        m = m - 10;
        n = n - 1;
    }
    else
        m = m + 1;

此程序的时间复杂度是 _________ 。


(2)以下程序为求二叉树深度的递归算法,请填空完善之 6分

typedef struct node
{
    char data;
    struct node lchild, rchild;
} *bitree;

int depth(bitree bt) /* bt为根结点的指针*/
{
    int hl, hr;
    if (br == NULL)
        return (_________);
    hl = depth(bt->lchild);
    hr = depth(bt->rchild);
    if (_________)
        return (hr + 1);
}

LZH 组五

四、画图/计算/证明 (30分)
1. 如果二叉树有n个结点,试问:当执行中序遍历的递归程序时,在最坏情况下为处理递归调用所设的单元至少要有多少个才行?(5分)


2.n个结点的m叉树转化为二叉树所需存储资源比未转化前用定长结点存储节省多少?(设链域占两个单元,数据域占一个单元)(5分)


  1. 已知一棵二叉树的中序遍历序列为:BAFDJGCKHLEIM,后序遍历序列为BFJGDKLHMIECA.请完成(6分)
    1. 构造出这颗二叉树;
    2. 画出这颗二叉树中序线索化后的结构

  1. 对长度为8的有序表,给出折半查找的判定树,给出等概率情况下的平均查找长度。(5分)

  1. (9分)假定有下列n*n矩阵(n为奇数)
    在这里插入图片描述1)A中非零元素的行下标与列下标的关系;
    2)给出A中非零元素aij的下标(i,j)与B中的下标R的关系;
    3)假定矩阵中每个元素占一个存储单元,且B的起始地址为A0,给出利用aij的下标(i,j)定位在B中的位置公式。

LZH 组七

四、画图/计算/证明 (30分)
1. 试说明一棵二叉树进行前序、中序、后序遍历,其叶结点的相对次序是否会发生改变?为什么?(5分)


2.n个结点的m叉树转化为二叉树所需存储资源比未转化前用定长结点存储节省多少?(设链域占两个单元,数据域占一个单元)(5分)


  1. 已知一棵二叉树的中序遍历序列为:BAFDJGCKHLEIM,后序遍历序列为BFJGDKLHMIECA.请完成(6分)
    1. 构造出这颗二叉树;
    2. 画出这颗二叉树中序线索化后的结构

  1. 对长度为8的有序表,给出折半查找的判定树,给出等概率情况下的平均查找长度。(5分)


// ToDo

## 四、LB组
### LB组一
### LB组二
### LB组三
### LB组四
### LB组五
### LB组六
### LB组七
### LB组八

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、进程管理(五)死锁

目录 5.1死锁的定义和产生条件 5.2死锁的处理策略 5.2.1死锁预防 5.2.2死锁避免 5.2.3死锁检测和解除 5.1死锁的定义和产生条件 在并发环境下&#xff0c;各进程因竞争资源而造成的一种互相等待对方手里的资源&#xff0c;导致各进程都阻塞&#xff0c;都无法向前推进的现…

【GlobalMapper精品教程】034:创建漫游动画并制作漫游视频的方法

本实例讲解在globalmapper中根据路径创建漫游动画,并制作漫游视频的方法。 文章目录 一、绘制漫游路径二、创建3D虚拟漫游三、播放虚拟漫游四、保存虚拟漫游实验数据可以是点云数据、DEM、三维模型等,本文加载数字表面模型DSM进行演示。 一、绘制漫游路径 同创建矢量线状数据…

海带软件分享——日常办公学习软件分享(收藏)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f680; 写在前面 &#x1f431;‍&#x1f3cd; 本期开始&#xff0c;小海带会定期推荐一些日常办公学习软件及趣味网址&#xff0c;供大家交流参考 ~ 小伙伴们记得一键三连喔&#xff01;&#x1f6…

几款好用到爆炸的在线画图工具

前言 实际工作中&#xff0c;我们经常会编写文档以及制作图表。尤其是对一名优秀的攻城狮来说&#xff0c;经常会用各种各样的软件来制作流程、思维导图、思维笔记等。一个良好的思维导图能系统概括项目工程的整体结构和开发的系统框架。要想制作一个完美的流程图、思维导图离不…

菜狗杯Misc一层一层一层地剥开我的♥wp

目录一、原题二、解题步骤对jpg图片的处理对文件名是一个心形的数据文件的处理base100解码这题完全是看着官方wp复现的&#xff0c;感觉涉及的步骤比较多但每一步本身不难&#xff0c;多记录一遍加深印象。 一、原题 原题给的是一个叫myheart.zip的文件&#xff0c;但尝试解压…

高通开发系列 - ALSA声卡驱动中音频通路kcontrol控件

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 高通开发系列 - ALSA声卡驱动中音频通路kcontrol控件问题背景高通音频通路如何建立widget和routemixer类控件名组合mixer类控件名拼接…

CRM客户关系管理系统(含源码+论文+答辩PPT等)

该项目采用技术&#xff1a;JSP Servlet MySQLjdbccssjs等相关技术&#xff0c;项目含有源码、文档、配套开发软件、软件安装教程、项目发布教程等 项目功能介绍&#xff1a; 系统管理&#xff1a;用户登录退出、个人资料修改 客户管理&#xff1a;客户信息管理、客户来源、联系…

Softmax回归——动手学深度学习笔记

Softmax回归&#xff0c;虽然它的名称叫做回归&#xff0c;其实它是一个分类问题。 回归VS分类 回归估计一个连续值 如&#xff1a;回归估计下个月的房价 分类预测一个离散类别 如&#xff1a; &#xff08;1&#xff09;MNIST&#xff1a;手写数字识别&#xff08;10类&…

初识springmvc

狂神的servlet回顾就不在这里写了。可以翻之前的笔记。 原生开发&#xff1a; 创建webapp的maven项目。 也就是四个文件 &#xff08;不用思考里面的代码&#xff0c;直接CV先走一遍流程&#xff09; HelloController&#xff1a; package com.Li.controller;import org.sp…

SecureCRT之Xmodem操作步骤

以锐捷S3760为例&#xff1a; 故障现象&#xff1a;s3760无法加载&#xff0c;需要重刷RGOS。 一、使用控制线连接s3760&#xff0c;开机加载引导&#xff0c;按Ctrl_B进入“BOOT MENU”页面&#xff1a; 选择【0】进入XModem操作界面&#xff1a; 说明&#xff1a; 0--更新…

android 开发——疑难杂症ANR简单介绍与解析

一、ANR介绍 ANR-application not response&#xff0c;应用无响应&#xff0c;应用开发者一般是关注自己的APP进程有没有出现&#xff0c;系统开发者会关注当前系统运行起来后整体上所有的APP进程有没有出现ANR&#xff0c;从这句话可以知道&#xff0c;只有应用进程的主线程…

多元正态分布-参数估计-书后习题回顾总结

重点考察知识点汇总 协方差矩阵 协方差矩阵为对称矩阵协方差矩阵的对角线为各分量的方差&#xff0c;其余位置(i,j)(i,j)(i,j)表示的是分量iii和分量jjj的协方差 多元正态分布的线性组合仍然服从多元正态分布 设X∼Np(μ,Σ)X\sim N_{p}(\mu,Σ)X∼Np​(μ,Σ)&#xff0c;B…

Python从零到就业

Python面向对象编程五步曲基础阶段01-Python的注释02 乱码原因02-Python变量03-数据类型04-数据类型转换05-Python运算符06-Python输入07-Python输出08-占位格式符(补充)09-Python分支10-Python循环(while)11-Python循环(for)12-Python循环打断待更新基础阶段 01-Python的注释…

C++输出四舍五入的一些小问题

嗯…今天刚去练了一会简单题 就我大一刚上学做的那种题&#xff0c;嗯&#xff0c;然后我发现我还是得调试&#xff0c;想骂人了&#xff0c;就啥样的题呢, 嗯,就这样的题&#xff0c;虽然我大一可能也过不了这种题&#xff0c;hh 现在题目里面要求一些四舍五入的问题 刚才没整…

网站都变成灰色的了,代码是怎么实现的呢?

今天来聊一聊页面的滤镜&#xff0c;或者说换肤更合适些。根据技术栈不同&#xff0c;页面换肤可以分为 web 端和 app 端&#xff0c;因此本文通过以下两部分介绍 PC 端 APP 端 一、PC 端 有关 PC 端的一键换肤&#xff0c;这个操作常用&#xff0c;所以大概率是有某个全局字…

Spring框架(三):SpringAop思想底层实现和日志应用(一):Spring代理实现

Spring框架&#xff08;三&#xff09;&#xff1a;SpringAop思想底层实现和应用&#xff08;日志&#xff09;引子Aop简介通过SpringBean实现Aop引子 痛定思痛&#xff0c;主要问题出现在自己雀氏不熟悉框架基础、一些面试题&#xff0c;以及sql的使用淡忘了。 本章节的开始是…

[附源码]计算机毕业设计springboot学生综合数据分析系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

java之NIO编程

NIO介绍 前面介绍了BIO为阻塞IO,其阻塞表现在两个方面:服务端等待客户端连接时的阻塞以及连接后没有发生数据传输时的阻塞。NIO是非阻塞IO,那么NIO是如何非阻塞的呢&#xff1f;带着这个疑问&#xff0c;开始研究NIO。 NIO有三大组件:Selector 选择器、Channel 管道、buffer 缓…

【网络层】MTU、IP数据报分片、IP详解、NAT

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录最大传送单元MTU--------以太网MTU是1500BIP数据报分片-------标识字段----同一数据报分片采用同一标识标志字段-----------只有两位有意义-------------中间为DF------dont fragment 不许分片--------DF1禁…

ConcurrentHashMap 成员、方法分析

常量 // 散列表数组(即table)长度最大限制private static final int MAXIMUM_CAPACITY 1 << 30;// table默认长度private static final int DEFAULT_CAPACITY 16;// 最大可能的数组长度&#xff0c;toArray方法使用(官方直译)&#xff0c;常用方法中未涉及static final…