数据结构:选择题+编程题(每日一练)

这篇具有很好参考价值的文章主要介绍了数据结构:选择题+编程题(每日一练)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据结构:选择题+编程题(每日一练),数据结构练习,1024程序员节,c语言,学习,深度学习,数据结构,算法,每日一练

目录

选择题:

题一:

题二:

题三:

题四:

题五:

编程题:

题一:单值二叉树

思路一:

题二:二叉树的最大深度

思路一:

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!


选择题:

题一:

1.一颗拥有1000个结点的树度为4,则它的最小深度是( )

A.5

B.6

C.7

D.8

答案解析:

        如果这棵树每一层都是满的,则它的深度最小,假设它为一个四叉树,高度为h,则这个数的节点个数为(4^h - 1) / 3,当h = 5, 最大节点数为341, 当h = 6, 最大节点数为1365,所以最小深度应该为6。

题二:

2.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为( )个

A.11

B.12​

C.13

D.14

答案解析:        

        设Ni表示度为i的节点个数,则节点总数 N = N0 + N1 + N2

        节点个数于节点边的关系: N个节点的树有N-1个边

        边与度的关系:N - 1 = N1 + 2 * N2

        故:N0 + N1 + N2 - 1 = N1 + 2 * N2

        因此,得:N0 = N2 + 1

        回到原题,N0 = 3,N1 = 8,可得N2 = 2。

        因此答案是 3 + 8 + 2 = 13。

题三:

3.在一颗度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,则叶子结点有( )个

A.4

B.5

C.6

D.7

答案解析:        

        设度为i的节点个数为ni, 该树总共有n个节点,则n=n0+n1+n2+n3. 

        有n个节点的树的总边数为n-1条.

        根据度的定义,总边数与度之间的关系为:n-1=0*n0+1*n1+2*n2+3*n3.

        联立两个方程求解,可以得到n0 = n2 + 2n3 + 1,  n0=6

题四:

4.下列关于二叉树的叙述错误的是( )

A.二叉树指的是深度为 2 的树

B.一个 n 个结点的二叉树将拥有 n-1 条边

C.一颗深度为 h 的满二叉树拥有 2^h-1 个结点(根结点深度为1)

D.二叉树有二叉链和三叉链两种表示方式

答案解析:     

        A错误: 二叉树指最大孩子个数为2,即树的度为二的树。深度描述的为树的层数。

        B正确: 对于任意的树都满足:边的条数比节点个数少1,因为每个节点都有双亲,但是根节点没有

        C正确: 正确,参加二叉树性质

        D正确: 二叉链一般指孩子表示法,三叉连指孩子双亲表示法,这两种方式是二叉树最常见的表示方式,虽然还有孩子兄弟表示法,该中表示方式本质也是二叉链

题五:

5.下列关于堆的叙述错误的是( )

A.堆是一种完全二叉树

B.堆通常使用顺序表存储

C.小堆指的是左右孩子结点都比根结点小的堆

D.堆的删除是将尾部结点放到队顶后执行向下调整算法

答案解析:

        堆是在完全二叉树的基础上进行了条件的限制,即:每个节点都比其孩子节点大,则为大堆;每个节点都比其孩子节点小则为小堆完全二叉树比较适合使用顺序结构存储。

堆删除:删的是堆顶元素,常见操作是将堆顶元素与堆中最后一个元素交换,然后对中元素个数减少一个,重新将堆顶元素往下调整故C错误

编程题:

题一:单值二叉树

965. 单值二叉树 - 力扣(LeetCode)

数据结构:选择题+编程题(每日一练),数据结构练习,1024程序员节,c语言,学习,深度学习,数据结构,算法,每日一练

思路一:

        对整棵二叉树进行遍历比较!!!

        第一步:优先判断树是否为空,空树为真;

        第二步:判断左树是否存在且左树值等于根值,然后再判断右树存在且右树值等于根值;

        第三步:最后,以当前为节点遍历左子树和右子树。

bool isUnivalTree(struct TreeNode* root)
{
    //判断子树是否为空
    if(root == NULL)
        return true;
    //左树存在且左树值等于根值
    if(root->left && root->left->val != root->val)
        return false;
    //右树存在且右树值等于根值
    if(root->right && root->right->val != root->val)
        return false;
    //递归判断子树值是否都相等
    return isUnivalTree(root->left) && isUnivalTree(root->right);
}

题二:二叉树的最大深度

104. 二叉树的最大深度 - 力扣(LeetCode)

数据结构:选择题+编程题(每日一练),数据结构练习,1024程序员节,c语言,学习,深度学习,数据结构,算法,每日一练

思路一:

        第一步:判断树是否为空,为空返回0;

        第二步:定义一个leftdeep:记录除根层以外左子树层数;定义一个rightdeep:记录除根层以右左子树层数;

        第三步:当遍历到树的子节点 返回值最大的值+1(加上当前层).

int maxDepth(struct TreeNode* root)
{   
    if(root == NULL)
        return 0;

    //记录除根层以外左子树层数
    int leftdeep = maxDepth(root->left);
    //记录除根层以外右子树层数
    int rightdeep = maxDepth(root->right);

    
    return leftdeep > rightdeep ? leftdeep+1 : rightdeep+1;
}

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

                                              数据结构:选择题+编程题(每日一练),数据结构练习,1024程序员节,c语言,学习,深度学习,数据结构,算法,每日一练文章来源地址https://www.toymoban.com/news/detail-740626.html

到了这里,关于数据结构:选择题+编程题(每日一练)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构选择题练习知识点整理【3】

    n 个点连通且无环的简单无向图为连通图,连通则至少有n-1条边,无环则只有n-1条边。n个点连通且无环的简单无向图有n-1条边,非零个数为2(n-1),零元素个数为n^2-2(n-1)。得出零元素个数为n²-2n+2。 算术表达式 中缀、前缀、后缀的互相转换 中-前 从右到左 数字入栈,碰见运算

    2024年02月06日
    浏览(51)
  • 学堂在线THU-C++数据结构(上)-邓俊辉 选择题

    CTRL+F可进行页面搜索~૮꒰ ˶• ༝ •˶꒱ა The reverse number of a sequence is defined as the total number of reversed pairs in the sequence, and the total number of element comparisons performed by the insertion sort in the list of size n is: 一个序列的逆序数定义为该序列中的逆序对总数,规模为n的列表中插入排序进行

    2024年02月13日
    浏览(36)
  • C语言--每日选择题--Day27

    1. 对于代码段,问下面不可以表示a[1]地址的是() A:a[0] + 1 B:a + sizeof(int) C:(int*)a + 1 D:(int*)((char*)a + sizeof(int)) A:取到的是a[0]的地址,我们对地址的加整数,加的是这个指针指向的内容类型的字节数; 比如a[0]+1,a[0]为int类型,那a[0]+1,就是往后走4个字节,也就是达到下

    2024年02月04日
    浏览(33)
  • C语言--每日选择题--Day37

    1. 有以下说明语句:则下面引用形式错误的是() A:p-num B:(p++).num C:(p++)-num D:(*p).num 本题考查的是对结构体变量如何引用,如果是结构体定义的对象,用 \\\' - \\\';如果是结构体的指针,就用 \\\' . \\\' ; A:p是一个结构体指针,指向的是一个结构体数组的首元素,所以p-num,拿到

    2024年02月03日
    浏览(36)
  • C语言—每日选择题—Day68

    1、运行以下C语言代码,输出的结果是() A: stra strb strc B: s t r C: stra tra ra D: s s s 这里需要注意的是printf函数,会自动识别字符串,到\\0位置结束打印 而p为char*类型,p++,只会移动一个字节,p++后置++,返回++之前的值 所以第一次打印:stra,但p在t位置 第二次:tra,但p在r位

    2024年04月11日
    浏览(36)
  • C语言—每日选择题—Day64

            两天没更新了,作者在复习期末考试,更新一波,祝大家都能顺利通过期末考试!!! 指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博客 1. 下面程序段的运行结果是( )【多选】 A:字符 \\\'\\0\\\' 的 ASCII 码值 B:

    2024年01月17日
    浏览(30)
  • 数据结构 每日一练 :选择 + 编程

    目录 选择 编程 A .   a[0][2*1]     B.  a[1][3]   C.  a[4-2][0]  D.  a[0][2+2] 答案:D 解析:题目给的是一个3行4列的数组,而D选项是 a[0][2+2] = a[0][4],相当于取得是第1行第5列的元素,越界了。需要注意的是数组下表是从0开始的。下标从0开始!下标从0开始!下标从0开始! A. 

    2024年02月09日
    浏览(43)
  • Java 编程基础:40 道选择题带你掌握核心概念 大学期末考试题

    当然可以!以下是一些关于Java编程的选择题,每道题后面都附有正确答案和简要解释。 Java中基本数据类型不包括: a) int b) float c) boolean d) string 答案:d) string (Java中的基本数据类型不包括字符串,字符串是引用数据类型。) 在Java中,下列哪个用于定义一个类? a)

    2024年02月04日
    浏览(50)
  • 大数据题目集——选择题

    1:IBM提出的大数据的5V特点包括: ( ) 、高速、低价值密度、真实性。 大量、多样 2:大数据是由结构化数据、半结构化数据和 ( )数据组成的。 非结构化 3:Hadoop是一个数据管理系统,作为( ) 的核心,汇集了结构化和非结构化的数据。 数据分析 4:Hadoop是一个大规模( ),拥有

    2024年02月08日
    浏览(35)
  • 大数据中的HBase的选择题

    (单选题)下列关于BigTable的描述,哪个是错误的? A. 爬虫持续不断地抓取新页面,这些页面每隔一段时间地存储到BigTable里 B. BigTable是一个分布式存储系统 C. BigTable起初用于解决典型的互联网搜索问题 D. 网络搜索应用查询建立好的索引,从BigTable得到网页 正确答案: A:爬虫持续不断地

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包