三九宝宝网宝宝百科宝宝知识

完全二叉树怎么解

03月12日 编辑 39baobao.com

[《画二叉树》教学反思]一、图形为引,任务驱动《画二叉树》的教学内容是递归过程的使用,学生可以绘制出logo语言中内置的对称的树形结构。根据五年级学生对知识性知识更感兴趣的心理特征,设定多个特殊...+阅读

给你个思路:

如果根节点是A[1]

那么对于任意节点A[m]的子节点是A[m*2]和A[m*2+1]依次类推,算出子节点的子节点......直道m*2或者m*2+1大于n为止;

反过来它的父节点就是A[m/2],注意:m/2不四舍五入,小数点后边全部舍去

////////////////////////////////////////////////

#include

#include

#define N 15

void displaySun(int *tr, int pos)

{

if(pos*2<=N)//先打印左子树

{

printf("%5d",tr[pos*2]);

displaySun(tr,pos*2);

}

if((pos*2+1)<=N)//打印右子树

{

printf("%5d",tr[pos*2+1]);

displaySun(tr,pos*2+1);

}

}

void main()

{

int A[N+1];

int i=0;

int num = -1;

/*我把节点A[i]对应的值赋值为i,如果不喜欢可以另外设制*/

for(i=0;i

A[i] = i;

do {

printf("请输入您要找的节点编号:\n");

scanf("%d",&num);

if(num>N||num<1)

printf("您输入的数值超出范围,必须是1-%d的数!\n\n",N);

else

break;

} while(1);

/*打印A[num]的父节点*/

if(num>1)

printf("第%d个节点的父节点是:\n%5d\n\n",num,A[num/2]);

else

printf("A[1]为根节点,没有父节点!\n\n");

/*递归打印A[num]的所有孩子*/

printf("第%d个节点的孩子:\n",num);

displaySun(A,num);

printf("\n");

}

以下为关联文档:

数据结构教程第二十四课遍历二叉树教学目的: 掌握二叉树遍历的三种方法教学重点: 二叉树的遍历算法教学难点: 中序与后序遍历的非递归算法授课内容:一、复习二叉树的定义二叉树由三个基本单元组成:根结点、左...

数据结构教程第二十一课树、二叉树定义及术语教学目的: 掌握树、二叉树的基本概念和术语,二叉树的性质教学重点: 二叉树的定义、二叉树的性质教学难点: 二叉树的性质授课内容:一、树的定义:树是n(n>=0)个结点的有限集。...

二叉树叉入一个节点程序不知道你是什么语言,不过思路相似,希望对你有帮助// erchashu.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include#include#include...

求教由二叉树的前序遍历序列建立二叉树的非递归算法#include /*如发现bug请给我留言*/ #include #include #define LEN sizeof(struct node) struct node { char data; struct node *lchild,*rchild; }; struct node *build()...

最佳排序二叉树在结构上的特点是什么展开全部 堆排序就是相当于一个排序二叉树,只是它是根节点的优先级别大于任何儿子的优先级别,这样可以每次删除根节点,然后调整整个堆。 program heap; var a:array[1..10000]...

有谁知道二叉树是怎么画出来的二叉树的画法可以分为: 1、确定根节点 2、确定该节点的左儿子与右儿子 3、递归下去,直到所有节点都不再有儿子节点 根据二叉树具体的存储结构,确定根及儿子节点的方法也不一样...

java如何在窗口中画出二叉树如果你说的是二叉搜索树的话,它是由节点和节点间的连线组成的,节点可以用一个圆来代替,连线就是一段直线,他们的位置你需要用一个2维数组来定义,然后调用Paint类的相关方法来画节...

怎么用链表创建一个完全二叉树#include typedef struct tnode{ tree *left; tree *right; int value }tnode; int isComplete(tnode* root){ if(null ==left){ if(null == right) return 1; else return...

知道二叉树遍历怎样画出二叉树由两种遍历所得的顺序能唯一确定一棵二叉树,比如给定了一颗二叉树的先序序列是:ABDECFG,中序序列是:DBEAFCG,由先序序列可以确定该二叉树根为A,因为先序遍历的顺序是从根到左子树...

推荐阅读
图文推荐