精华内容
下载资源
问答
  • 王道数据结构4.4.5——7、已知一棵2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的...
    万次阅读 多人点赞
    2019-10-28 00:12:03

    更多相关内容
  • 如果某结点左右子树为空,返回,否则交换该结点左右孩子,然后递归交换左右子树。 #include<stdio.h> #include<stdlib.h> typedef struct BiTNode { int data; struct BiTNode *lchild; struct ...

    此代码可以正常运行,下附有运行区
    如果某结点左右子树为空,返回,否则交换该结点左右孩子,然后递归交换左右子树。

    #include<stdio.h>
    #include<stdlib.h>
    typedef struct BiTNode
    {
    	int data;
    	struct BiTNode *lchild;
    	struct BiTNode *rchild;
    }BiTNode,*BiTree;
    
    //先序创建二叉树
    BiTree CreateBiTree()
    {
        char ch;
        BiTree T;
        scanf("%c", &ch);
        if (ch == '#')
        {
            T = NULL;
        }
        else
        {
            T = (BiTree)malloc(sizeof(BiTNode));
            T->data = ch;
            T->lchild = CreateBiTree();
            T->rchild = CreateBiTree();
        }
        return T;
    }
    
    void ChangeLR(BiTree &T)
    {
    	BiTree temp;
    	if(T->lchild==NULL&&T->rchild==NULL)
    		return;
    	else
    	{
    		temp = T->lchild;
    		T->lchild = T->rchild;
    		T->rchild = temp;
    	}//交换左右孩子
    	ChangeLR(T->lchild);  //递归交换左子树
    	ChangeLR(T->rchild);  //递归交换右子树
    }
    
    //先序遍历
    void PreOrderTraverse(BiTree T)
    {
        if (T)
        {
            printf("%c", T->data);
            PreOrderTraverse(T->lchild);
            PreOrderTraverse(T->rchild);
        }
    }
    
    int main()
    {
    	BiTree T;
    	printf("先序输入节点,以#虚设\n");
    	T=CreateBiTree();
    	PreOrderTraverse(T);
    	printf("\n");
    
    	printf("交换节点\n");
    	ChangeLR(T);
    	PreOrderTraverse(T);
    	printf("\n");
    }
    

    在这里插入图片描述

    展开全文
  • 也就是说,对于森林中的每个分支结点,都存在它的1个孩子结,转换为二叉树后右孩子为空,设森林n个分支结点,故n个对应的无右孩子结点。 再来看二叉树的根节点(见下图中的B结点):它作为分支结点,提供了一...

    对于森林中的所有分支结点(分支结点就是非叶子结点,包含了根节点):其所有孩子都会连到它对应二叉树的左子树中,最左边的孩子成为这棵左子树的根节点,最右边的孩子由于没有兄弟了,转为二叉树后,它的右孩子一定为空。

    也就是说,对于森林中的每个分支结点,都存在它的1个孩子结,转换为二叉树后右孩子为空,设森林有n个分支结点,故有n个对应的无右孩子的结点。

    再来看二叉树的根节点(见下图中的B结点):它作为分支结点,提供了一个无右孩子的结点(见下图B的黑色箭头);作为根结点本身,在森林中的最右兄弟(见下图中的D结点)转为二叉树后也是没有右孩子的(见下图B的红色箭头),因此根节点总共提供了2个无右孩子的结点。

    因此,森林转二叉树,无右孩子的结点由两部分提供:每个分支结点提供一个+根节点额外提供一个,总共有n+1个结点无右孩子。树可以看做只有1棵树的森林,也能得到同样的结论。

    一图胜千言,看这张图应该会容易理解一些,黑色箭头指向作为分支结点提供的无右孩子的结点,红色表示根结点作为其本身提供的无右孩子的结点

    底图出自王道考研数据结构的这个视频(在10min左右)

    展开全文
  • 已知一棵 2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的结点个数是 ( )。【2011年全国试题6(2分)】 A.115 B.116 C.1895 D.1896 树在变二叉树的过程中,首先要连线,连的线是亲兄弟之间...

    更新时间:2021年8月16日21:37:32

    写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞收藏呦。感激不尽!如有错误也请留言指正。

    下题是我专栏《考研数据结构题型分类讲解练习》中的一道,专栏中的题目都很经典,欢迎订阅我的专栏《考研数据结构题型分类讲解练习》

    5-1. 已知一棵有 2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的结点个数是 ( )。【2011年全国试题6(2分)】
    A.115
    B.116
    C.1895
    D.1896

    树在变二叉树的过程中,首先要连线,连的线是亲兄弟之间的线。这个时候,如果一个节点有右侧的亲兄弟,他就会伸出一个右指针去连。而没有伸出右指针的只有一组亲兄弟中最右侧的节点。所以,在一组亲兄弟中,有且仅有最有一个节点没有右侧指针。那么,没有右指针的节点数量就变成了有多少组亲兄弟。

    亲兄弟的数量又怎么判断呢?我们知道,一组亲兄弟,对应一个爸爸,而爸爸的数量就是非叶节点的数量。

    所以,没有右孩子的节点数量就是非叶节点的数量。

    此外,在断开树中连线时,我们又可以发现,最上边的根节点也是没有右指针的。

    综上,二叉树中没有右指针的节点数量 = 树中非叶节点数量 + 一个根节点

    展开全文
  • 列出叶结点

    2020-08-16 21:40:59
    7-1 列出叶结点 (25分) 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每...
  • 满二叉树:二叉树中,所有分支结点都存在左子树和子树,并且所有叶子都在同一层上。完全二叉树:在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一棵完全二叉树。二叉树的遍历:前序遍历(根左右),...
  • 7-7列出叶结点

    千次阅读 2018-11-26 18:46:58
    7-7列出叶结点 (25 分) 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后...
  • 完全二叉树中,若一个结点没有左孩子,则它必是树叶 答案:T 分析: 首先明确完全二叉树的定义:如果编号i(1≤i≤n)的结点与满二叉树(完美二叉树)中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全...
  • 7-2 列出叶结点 (25 分)

    2021-05-14 14:13:42
    对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数N(≤10),为树中结点总数。树中的结点从 0 到N−1编号。随后N行,每行给出一个对应结点左右...
  • 已知一棵2011个结点的树,其叶结点个数为116,该树对应的二叉树中无子的结点个数是
  • PTA 列出叶结点 (25分)

    千次阅读 2020-10-26 16:32:18
    PTA 列出叶结点 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出...
  • 列出叶结点 (25分)

    2020-10-23 17:13:35
    对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右...
  • 列出叶结点(PTA)

    2020-12-15 11:48:44
    对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右...
  • 列出叶结点 (25 分)

    千次阅读 2019-03-07 13:09:48
    对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数N(≤10),为树中结点总数。树中的结点从 0 到N−1编号。随后N行,每行给出一个对应结点左右...
  • 7-1 列出叶结点

    千次阅读 2019-10-26 13:58:33
    7-1 列出叶结点 (40 分) 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行...
  • 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数N(≤10),为树中结点总数。树中的结点从 0 到N−1编号。随后N行,每行给出一个对应结点左右...
  • 一.题目理解 1)(子)节点/终端结点/树叶:是度为 0 的结点。(带字或终端!) 分支结点:度不为0的结点。 区:结点 ... 2)层序遍历:从上到下、... 法1:数组存储的是从根节点开始,左孩子,右孩子,左孩子的...
  • 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 public int TreeDepth(TreeNode root){ if(root == null) return 0; int leftDepth = TreeDepth(root.left); int...
  • 列出叶结点【递归】【二叉树】 题目详情 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 ...
  • 7-16 列出叶结点 (25分)/(C语言实现)

    千次阅读 2020-04-08 17:43:20
    7-16 列出叶结点 (25分)/(C语言实现) 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。...
  • 本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct ...
  • 利用结点右孩子指针将一个二叉树的叶子结点从左向右链接成一个单链表。(head指向第一个,tail指向最后一个) 分析: 根据题意,可以分为第一个结点和剩余结点两种情况来处理,其中head一直指向第一个叶子结点,而...
  • PTA列出叶结点(BFS)

    千次阅读 2020-01-19 18:11:15
    对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右...
  • 各种常见的二叉树概念二叉树:每个结点最多两个子树(左子树和子树)的树结构。节点的层次:一个结点的层次直观上来说就是其所在的行,其中根结点层次为1。二叉树的深度:二叉树的深度指二叉树的最大叶子结点...
  • 重启c语言之树——列出叶结点

    千次阅读 2020-05-23 22:43:07
    列出叶结点 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个...
  • 从二叉树中删去所有叶结点

    千次阅读 多人点赞 2019-10-23 21:53:22
    删除所有叶子结点 void Del_0(BiTree T) //删除叶子结点 { BiTNode *p = T; if (p == NULL) return; else if (p->lchild == NULL && p->rchild == NULL) free(p); Del_0(T->lchild...
  • 6-5 先序输出叶结点 (15 point(s))

    千次阅读 2019-03-30 20:53:58
    6-5 先序输出叶结点 (15 point(s)) 本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; ...
  • 7-1 列出叶结点(25 分) 对于给定的二叉树,本题要求你按从上到下、从左到的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N ...
  • 若X是二叉中序线索树中一个孩子结点,且X不为根,则X的前驱为

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,439
精华内容 7,775
关键字:

叶结点有右孩子结点吗

友情链接: CoachingReseller.zip