完全二叉树 数据结构第一行有2个整数n(0 < n < 1024)和r(1

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 05:27:15
完全二叉树 数据结构第一行有2个整数n(0 < n < 1024)和r(1

完全二叉树 数据结构第一行有2个整数n(0 < n < 1024)和r(1
完全二叉树 数据结构
第一行有2个整数n(0 < n < 1024)和r(1

完全二叉树 数据结构第一行有2个整数n(0 < n < 1024)和r(1
#include "math.h"
#include "string.h"
#include "stdlib.h"
/*
判断某个节点num是否属于二叉树a[]内的节点,其中len是二叉树数组表示的所有节点个数,
包括左右孩子为空的情况,*index是节点num在二叉树数组中的位置.
*/
int judge(int a[], int len,int *index, int num)
{
    for (int i=0; i<len; i++)
    {
        if (a[i] == num)
        {
*index = i;
return 1;
        }
    }
return 0;


/*
以数组形式创建二叉树,返回数组指针,其中参数NodeNum是二叉树内非空节点个数
*/
int * CreateBinTree(int *NodeNum)
{
    int *a=NULL;
    int x=0,y=0;
    scanf("%d %d",&x,&y);
a = (int *)malloc(sizeof(int)*(x*2+1));
*NodeNum = x;
memset(a,0,sizeof(int)*(x*2+1));
a[0] = y;
int n = x;
for (int i=1; i<n; i++)

{
        scanf("%d %d",&x,&y);
int index=0;
if ( judge(a,n,&index,x) )
{
a[ (index)*2+1 ] = y;
}
else if ( judge(a,n,&index,y) )
{
            a[ (index)*2+2 ] = x;
}
}
    return a;
}

/*
判断是否完全二叉树的依据是某个节点左右孩子不为空,或者全部为空
*/
int isBinTree(int a[], int NodeNum)
{
    for (int i=0; i<(2*NodeNum+1); i++ )
    {
        if (a[i] != 0)
        {
if ( (a[2*i+1]==0)&&(a[2*i+2]!=0) )
{
return 0;
}
if ((a[2*i+1]!=0)&&(a[2*i+2]==0))
{
return 0;
}
        }
    }
}
int main(int argc, char* argv[])
{
        int *a=NULL;
int NodeNum=0;
a = CreateBinTree(&NodeNum);
printf("\nShow:");
for (int i=0; i<2*NodeNum+1; i++)
{
   printf("%d ",a[i]);
}
int rt = isBinTree(a,NodeNum);
if (rt)
{
           printf("\nyes!");
}
else
{
           printf("\nno!");
}

printf("\n");
return 0;
}

完全二叉树 数据结构第一行有2个整数n(0 < n < 1024)和r(1 数据结构完全二叉树问题一棵完全二叉树的第9层有200个叶结点,则该完全二叉树最多有【】个结点 数据结构题目:在有n个叶子结点的完全二叉树中,最多有多少个结点? 数据结构的线索二叉树,为什么在有n个结点的二叉链表中必定存在n+1个空链域 数据结构与算法:二叉树三道题一个有4层结点的完全二叉树.按前序遍历周游给结点从1开始编号,则第21号结点的父结点是多少号?(注释:根的层数为0)假设一棵二叉树中,度为2的结点有20个, 数据结构 一棵完全二叉树,第8层含有5个结点,则这棵二叉树的叶子结点个数为? 数据结构题目:设一棵完全二叉树具有2009个结点,则此完全二叉树有多少叶子结点?有多少度为2的结点?答案是 1005,1004怎么算的?求解释 数据结构 一棵完全二叉树中有500个结点 数据结构问题:一棵完全二叉树有100个结点,度为一的结点有几个,叶子结点有几个? 设一棵完全二叉树具有100个结点,则此完全二叉树有几个度为2的结点?.. 若一棵完全二叉树的第4层(根结点在第0层)有7个结点,则这棵完全二叉树的结点总数是 . 数据结构试题一、 选择1.将含有100个节点的完全二叉树,从上到下,从左到右进行编号,根节点编号为1,则编号27的双亲为[ ].A.17 B.13 C.14 D.542.深度为h的满二叉树的第m层有[ ]个结点.A.B.C.D.3.设用邻 一棵完全二叉树第6层有7个结点,则共有几个结点 三道数据结构题.1、由85个节点构成的完全二叉树,其深度为:______,其中第6层的节点数为____个2、关键字1,2,3,5,13,18,27,对其进行折半查找,那么查找关键字13的比较次数是___次3、有一棵二叉树,它 求一道关于数据结构的题一棵完全二叉树上有1001个结点,其中叶子结点的个数是? 已知一个完全二叉树的第6层有8个叶子节点,则完全二叉树结点个数最多是? 数据结构:具有n个结点,其路径长度最短的二叉树具有n个结点,其路径长度最短的二叉树是()A 哈夫曼树 B 完全二叉树 C AVL树 D二叉排序树B,可我觉得A,B,C,D都不对,树形不同最短长度是不一样 完全二叉树共有2*n-1个结点,那么他的叶结点怎么算?