【数据结构】复习题(二)

Hello!大家好,这一篇数据结构复习题是我上个学期复习的时候写的(刚刚在草稿箱发现了!)有一些题目过程都是配了图片的,希望对正在复习数据结构的宝宝们有帮助哦!(还有一个数据结构复习题(一)可以去我的数据结构专栏中找一下!)

一、选择题

  1. 数据的最小单位是()。
    (A)数据项
    (B)数据类型
    (C)数据元素
    (D)数据变量

  2. 设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。
    (A)40,50,20,95
    (B)15,40,60,20
    ©15,20,40,45
    (D)45,40,15,20

  3. 设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,则用归并排序的方法对该记录关键字序列进行一趟归并排序后的结果为()。
    (A)15,25,35,50,20,40,80,85,36,70
    (B)15,25,35,50,80,20,85,40,70,36
    ©15,25,35,50,80,85,20,36,40,70
    (D)15,25,35,50,80,20,36,40,70,85
    【归并排序】简要步骤
    ①开始每个数字作为一组。
    ②每次都两两进行比较,直至最后一组。

  4. 一颗完全二叉树上有1001个结点,其中叶子结点的个数为()。
    (A)250
    (B)500
    © 254
    =(D)501
    该完全二叉树的深度为10.
    且第十层上的叶子结点数:1001-511=490
    第九层上的叶子结点数:256-490/2=11
    故总的叶子结点数:501

  5. 设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。
    (A)O(log2n)
    (B)O(1)
    ©O(n2)
    (D)O(n)

  6. 设一棵m叉树中度数为0的结点数为No,度数为1的结点数为N1,......,度数为m的结点数为Nm,则No=()。
    A) N1+N2+…+Nm
    (B)I+N2+2N3+3N4+…+(m-1)Nm
    © N2+2N3+3N4+…+(m-1)Nm
    D)2N+3N2+…+(m+1)Nm

  7. 设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。
    (A)25
    (B)10
    ©7
    (D)1

  8. 设连通图G中的边集E={(a,(e,d),(d,f),(f, c)}则从顶点a出发可以得到一种深度优先遍历的顶点序列为()。
    (A)abedfc
    (B)acfebd
    ©aebdfc
    (D)aedfcb

  9. 设输入序列是1、2、3、······、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()。
    (A)n-i
    (B)n-1-i
    ©n+1-i
    (D)不能确定

  10. 设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是()。
    (A)40,42,45,55,80,83
    (B)42,40,45,80,85,88
    ©42,40,45,55,80,85
    (D)42,40,45,85,55,80

二、应用题
1.计算如图所示的AOE网中各顶点所表示的事件的发生时间ve(j),vl(j),各边所表示的活动的开始时间e(i),e(j) ,并找出其关键路径。
【基本步骤】
①计算事件的最早发生时间 Ve(i)
②计算事件的最晚发生时间 Vl(i)
③计算活动的最早发生时间 e(i)
④计算活动的最晚发生时间 l(i)
⑤计算活动的时间余量 l(i)-e(i)
⑥写出关键路径
如图所示:

写出图的拓扑排序,并计算事件也就是顶点的最早和最晚发生时间

(写成图表的形式 等一会算活动的最晚发生时间看着比较直观)

计算活动的最早最晚发生时间

根据时间余量 写出关键路径

三、算法设计题
1.设计判断两个二叉树是否相同的算法。

typedef char datatype;
typedef struct node
{
    datatype data;
    struct node *lchild;
    struct node *rchild;
}bitree;
int judgebitree(bitree* t1,bitree *t2)
{
    if(t1==NULL && t2==NULL )
        return 1;
     else if (t1==NULL || t2==NULL)
         return 0;
     else if (t1->data!=t2->data)
         return 0;
     else
         //我觉得这个*就很妙
         return (judgebitree(t1->lchild,t2->lchild)*judgebitree(t1->rchild,t2->rchild));
}

3.非递归实现二叉树的前序遍历和中序遍历。
先定义好顺序栈。

typedef struct stack
{
    bintree data[100];
    int top;
}seqstack;
 //进栈
 void push(seqstack *s,bintree t)
 {
    s->data[s->top]=t;
    s->top++;
 }
 //出栈
 bintree (seqstack *s)
 {
     if(s->top!=0)
     {
         s->top--;
         return (s->data[s->top];)
     }
     else
         return NULL;
 }

二叉树前序遍历的非递归实现

//bintree是指向二叉树结点的指针
//typedef bintnode * bintree;
void preorder (bintree t)
{
    seqstack s;
    s.top=0;
    while((t) || (s.top)!=0)
    {
        if (t)
        {
            printf("%c",t->data);
            push(&s,t);
            t=t->child;
        }
        else
        {
            t=pop(&s);
            t=t->rchild;
        }
    }
}

二叉树中序遍历的非递归实现

void inorder(bintree)
{
    seqstack s;
    s.top=0;
    while(t!=NULL || (s.top!=0))
    {
        if(t)
        {
            push($s,t);
            t=t->lchld;
        }
        else
        {
            t=pop(&s);
            printf("%c",t->data);
            t=t->rchild;
        }
    
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端css笔记(pink老师)

css css书写顺序 自适应屏幕 html { width: 100%; height: 100%; display: table; } body { display: table-cell; } 用了这个方法以后,如果希望页面内的盒子也适应屏幕大小,则使用以下方法,会根据父亲的宽高计算出该盒子的宽高 width:xx%; …

Zabbix5部署并添加主机

目录 一.准备数据库服务 1.下载进入mysql 2.创建zabbix用户和权限 3.引入初始数据库 二.部署zabbix-server 1.下载软件 2.为zabbix配置数据库 3.配置前端和php 4.修改本设备的Server、ServerActive、Hostname(选做) 三.浏览器测试 1.填写注册…

HarmonyOS分布式应用框架深入解读

随着越来越多设备的智能化,在多设备场景下应用开发面临以下挑战:从多设备的形态差异(不同大小、不同分辨率、不同形状的屏幕,多样化的交互方式–按钮、触屏、键盘、语音、手势等),多设备的能力差异&#xf…

超越传统Lambda函数:深入解析Out-of-line Lambdas的奇妙之处

超越传统函数:深入解析线外 Lambda函数 的奇妙之处 一、背景二、lambda 的捕获三、可能出现的警告四、lambda的广义捕获五、为每种情况进行重载六、总结 一、背景 Out-of-line Lambdas翻译过来就是“线外Lambda函数”或“离线Lambda函数”。Lambda 是使代码更具表现…

应用实战|从头开始开发记账本2:基于模板快速开始

上期视频我们创建好了BaaS服务的后端应用。从这期视频开始,我们将从头开发一个互联网记账本应用。本期视频我们介绍一下如何使用模板快速开启我们的应用开发之旅。 应用实战|从头开始开发记账本2:基于模板快速开始 相关代码 本期视频我们介绍…

浅析分布式业务一致性方案

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习 1 场景分析 现在有一种业务场景:A作为消息发送方,处理业…

Project Euler_Problem 178_Step Numbers_动态规划

原题目&#xff1a; 解题思路&#xff1a;动态规划 代码&#xff1a; ll R[50][11][2048];void solve() {ll i, j,k,x,y,z,p,q,u,v;N 40, NN 1024;//N 20;double a, b, c,d;for (i 0; i < 9; i) {R[1][i][1 << i] 1;}for (i 2; i < N; i) {for (j 0; j &…

三小时零基础入门微信扫码点餐小程序 手把手带你开发一款云开发版点餐软件,店铺地图导航,外卖小程序,用户端和后厨端都有

从今天开始带领大家实现一款云开发版的点餐小程序 视频讲解&#xff1a;《云开发后台微信扫码点餐小程序cms网页管理后台》 技术选型 1&#xff0c;前端 微信小程序原生框架cssJavaScript 2&#xff0c;管理后台 云开发Cms内容管理系统web网页 3&#xff0c;数据后台 小…

推荐几款常用Web自动化测试神器!

1、介绍 Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用&#xff0c;它已经成为现代软件测试中不可或缺的一部分&#xff0c;今天给大家介绍推荐几款常用的Web自动化测试工具。 2、常用测试工具 常用的Web自动化测试工具包括&#xff1a; Selenium&am…

Vue.js npm错误:transpileDependencies.map不是一个函数

这个错误通常是由于npm版本不兼容导致的。在旧版本的npm中&#xff0c;transpileDependencies是一个字符串数组&#xff0c;我们可以直接配置需要编译的依赖库。而在较新版本的npm中&#xff0c;transpileDependencies被改成了一个对象&#xff0c;并且需要使用map()方法来处理…

有限差分法求解一维、二维波动方程

差分格式方法是数值计算方法中微分以及偏微分导数的一种离散化方法。具体来说&#xff0c;它使用相邻两个或者多个数值点的差分来取代偏微分方程中的导数或偏导数。选择差分格式是离散化偏微分方程的第一步&#xff0c;通过这种离散化&#xff0c;我们可以将连续空间区域上的问…

【UE 委托】如何利用函数指针理解委托的基本原理

目录 0 引言1 函数指针模拟多播委托 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&#x1f4a5; 标题&#xff1a;【UE 委托】如何利用函数指针理解委托的基本原理❣️ 寄语&#xff1a;书到用时方恨少&#xff0c;事非经过不知难…

适用于 Windows 的 10 个免费数据恢复工具集合

有时&#xff0c;我们都会在个人计算机上意外删除一些重要文件或数据。我们无需再担心此类问题&#xff0c;因为我们可以借助互联网上提供的免费数据恢复工具来恢复宝贵的数据和图像。 互联网上有许多免费的数据恢复工具&#xff0c;从一长串工具中&#xff0c;我们列出了最好…

阿里云优惠口令2024最新

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

【软考中级】软件设计师考点分布

文章目录 软考官网资格设置软考报考流程 【软件设计师】考点分布选择题考点分布案例题考点分布 软考官网 中国计算机技术职业资格网&#xff1a;https://www.ruankao.org.cn/ 官网报名平台&#xff1a;https://bm.ruankao.org.cn/sign/welcome 资格设置 计算机软件计算机网…

RNN知识体系构筑:详尽阐述其理论基础、技术架构及其在处理序列数据挑战中的创新应用

一、为什么需要RNN 尽管神经网络被视为一种强大且理论上能够近似任何连续函数的模型&#xff0c;尤其当训练数据充足时&#xff0c;它们能够在输入空间中的某个点( x )映射到输出空间的特定值( y )&#xff0c;然而&#xff0c;这并不能完全解释为何在众多应用场景中&#xff…

数据结构排序篇上

排序的概念及其运用 排序的概念 排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&…

震惊!借助Coze白嫖GPT4-128k解决方案

震惊!某大佬借助Coze白嫖GPT4-128k解决方案 前言 此文章介绍如何免费使用GPT-4高级模型并拓展API功能 最近的 Coze 在国内开放了&#xff0c;可以免费使用大模型。但是和国外的有点区别&#xff0c;国外版本使用的chatgpt4&#xff0c;国内版本使用的是语雀大模型。 Coze是一…

功能测试_订购单检查_判定表

画判定表的步骤&#xff1a; 列出条件 列出动作