
试编程求二叉树T的总结点数
二叉树就是说一个结点下面可能有两个子结点(度为2),也可能有一个子结点(度为1),或者没有子结点(度为0,也叫叶子结点)那么在这棵树中只可能出现三种情况:度为2,度为1,度为0(叶子结点)。
不可能出现其他情况,否则就不是二叉树了。
所以,总结点数应该为三者之和。
已经知道:度为0=70,度为1=80度为2=度为0-1=69(这是公式,原因说起来太麻烦,你自己 画个图可能会更清楚。
)所以:总结点数=度为2+度为1+度为0=69+80+70=219
求二叉树总结点数的算法,要主要的程序过程
\\\/\\\/---------------------------------------------------------------------------#include
实验五 二叉树基本操作的编程实现实验报告
设一棵完全二叉树共有699个结点.首先需要求出这棵树的深度。
。
。
。
也就是说这棵树有多少层。
。
。
完全二叉树有一个性质: 具有n个结点的完全二叉树的深度为log2n(2是下标)+1。
根据这个性质,就可以求得完全二叉树的深度为1010层满二叉树的总结点数为1023,最后一层的结点数应该是2的9次方为512,所以肯定699个结点肯定不是满二叉树。
。
。
叶子节点出现在最后两层上。
。
。
最后一层叶子结点个数为:699-(1023-512)=188倒数第二层的叶子节点数为: (512-188)\\\/2=162叶子总数应该是:188+162 = 250不确定有没有算对.大概思路应该是这样的.希望对你有帮助
二叉树问题编程
你可以用递归函数来实现这个函数,基本思路是:1、如果结点地址为空,则返回;2、调用函数自身输出左子树;3、输出本结点;4、调用函数自身输出右子树;下面的函数按层次打印二叉树typedef struct Node{ Node* left; Node* right; char data;};\\\/\\\/递归打印二叉树的各个结点void print_btree(Node* node, int level){if(node==NULL)return;print_btree(node->left,level+1);\\\/\\\/缩进level*2个字符for(int i=0;i
java 二叉树编程 求救
\\\/\\\/给的分有点少哦public class BTNode { public String data; public BTNode left; public BTNode right; public BTNode(String data, BTNode l, BTNode r) { this.data = data; this.left = l; this.right = r; } public BTNode(String data) { this.data = data; }}public class BTree { private BTNode root; public BTree(){ } public BTree(BTree t){ CopyNodes(t.root, this); } private void CopyNodes(BTNode node, BTree tree){ if(node == null){ return; } tree.insert(node.data); CopyNodes(node.left, tree); CopyNodes(node.right, tree); } public void insert(String newData){ root = insert2(newData, root); } private BTNode insert2(String s, BTNode n){ if(n == null){ return new BTNode(s); } if(s.compareTo(n.data) < 0){ n.left = insert2(s, n.left); }else if(s.compareTo(n.data) > 0){ n.right = insert2(s, n.right); } return n; } public BTNode find(String s){ BTNode node = root; while(node != null){ if(s.equals(node.data)){ return node; } if(s.compareTo(node.data) < 0){ node = node.left; }else{ node = node.right; } } return null; } public void printInOrder(){ showNode(root); } private void showNode(BTNode node){ if(node == null){ return; } showNode(node.left); System.out.print(node.data + \\\); showNode(node.right); }}



