jjdp.net
当前位置:首页 >> 怎么输入二叉树值 >>

怎么输入二叉树值

reat()里面.你用了递归,构建的是一棵满二叉树.它先构建根节点,再构建左子树,等左子树构建完了,再构建右子树.但是如果你就不断地输入非零值的话,你就没完没了地在构建左子树.注意了,由于你这个程序构建的是满二叉树(就

typedef struct BiTNode{ } BiTNode,*BiTree;BiTree CreateBiTree(){ BiTree T;char ch;scanf("%c",&ch);if(ch==' ')return (NULL); else{ if(!(T=( BiTNode*)malloc(sizeof(BiTNode))))return 0; T->data=ch; //生成根结点 T->lchild= CreateBiTree(

展开全部#include#include typeof struct Node { int data;//保存结点的内容 struct Node*lchild;//指向左结点 struct Node *rchild;//指向右结点 }BNODE; BNODE *rooe=NULL; void createBTree() { BNODE *p; //从键盘输入数据 int d; printf("\n 请输

嗯你看看你应该输入: ab##c#d## 就是说当某一个节点的左右子树为 空, 那么就应该输入一个# ,叶子的左右节点也不例外祝:事事顺心

在c环境下呗,输入语言,运行呗

那就要看你的程序是如何的了.我是初学者,我有一个程序如下:#include<iostream.h>#include<stdio.h> struct tree { char d; struct tree *lc,*rc; }; struct tree* create() {struct tree*p; char c; cin>>c; if(c=='#') return 0; p=new struct tree; p->d=c; p->lc=

二叉树应该是前序遍历建树,输入的时候按照前序遍历的形式,注意,如果一个节点的左孩子没有的,则她的左孩子为NULL,你输入的时候要输入#,如果一个节点的右孩子没有的,则她的右孩子为NULL,你输入的时候也要输入#.方法就是我讲的,这只是给你个例子. //////////////////////////////////////// 根据你的程序是# 你把 c=getchar(); 改为 scanf("%c",&c); 试试 不好意思刚才的可能有误 ABD##EG#J###C#FHK##L##IM###试试

先定义二叉树的存储结构,不同的定义方法相应有不同的存储结构的建立算法.如二叉树采用二叉链表存储结构,如下:#define OK 1#define OVERFLOW -1typedef int TElemType;typedef int Status;typedef struct BiTNode { TElemType data;

tree.h#include<stdio.h>#include<malloc.h>#define MAX_NODE 50 typedef struct BiTNode { char data; BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTree CreateBiTree(); void InorderTraverse( BiTree T); creatTree.cpp#include"tree.h" BiTree

只是它构建起这颗二叉树以后按照前序法来创建二叉树,输出的时候要根据你遍历这颗二叉树的方法(前序遍历、中序遍历、后序遍历)来决定输出序列了. 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1.

snrg.net | bycj.net | sgdd.net | lpfk.net | pdqn.net | 网站首页 | 网站地图
All rights reserved Powered by www.jjdp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com