数据结构(C语言版) 建立二叉树数据怎么输入?

比如:我通过下面算法 建立二叉树,数据怎么输入?编译通过WIN-TC。void createbintree(bintree *root)
{
char ch;
printf ("please enter ch:\n");
scanf("%c",&ch);
if((ch=getchar())==' ')
{*root=NULL; }
else {
*root=(bintnode*)malloc(sizeof(bintnode));
(*root)->data=ch;
createbintree(&(*root)->lchild);
createbintree(&(*root)->rchild);
}}

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(); //构造左子树 T->rchild=CreateBiTree(); //构造右子树。因为前面定义具有BiTNode相同类型的二叉树,所以把递归的值付给右孩子 return (T); }}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-10
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(); //构造左子树 T->rchild=CreateBiTree(); //构造右子树。因为前面定义具有BiTNode相同类型的二叉树,所以把递归的值付给右孩子 return (T); }}
第2个回答  2017-08-02
可以用递归来证先序的第一个结点A为根结点 在中序中找到A,此结点左strA为左树,右strB为右树 同时可以将先序除A以外的结点分为strA和strB再来证明strA strB分别确定两棵树 方法与上相同举个例子画画就清楚了

数据结构中关于用c++语言建立二叉树的问题,求代码,急!!!
postOrder(root->RChild);\/*后序遍历右子树*\/ printf("%c",root->data);\/*输出结点*\/ } } void main(){ BiTree T;printf("建立二叉树,请输入序列:\\n");CreateBiTree(&T);printf("\\n输出前序序列为:");preOrder(T);printf("\\n输出中序序列为:");inOrder(T);printf("\\n输出后...

请问C语言如何创建二叉树???
void inorder(Node* node)\/\/树的中序遍历 { if (node != NULL){ inorder(node->left);printf("%d ",node->data);inorder(node->right);} } int main(){ Tree tree;tree.root = NULL;\/\/创建一个空树 int n;scanf("%d",&n);for (int i = 0; i < n; i++)\/\/输入n个数...

数据结构中用c语言建立二叉树的程序
q=Getqtop(Q); \/\/q指向二叉树的指针 if(p&&q)if(i%2==0)q->Lchild=p;else q->Rchild=p;if(i%2==1) Del=DeQueue(Q);} i++;} return(BT);} main()

数据结构二叉树的基本操作~~~
1.以二叉链表表示二叉树,建立一棵二叉树;2.输出二叉树的前序遍历结果;3.输出二叉树的中序遍历结果;4.输出二叉树的后序遍历结果;5.统计二叉树的叶结点个数;6.统计二叉树的结点个数;7.计算二叉树的深度。8.交换二叉树每个结点的左孩子和右孩子;include <malloc.h> include <stdio.h...

c语言 关于二叉树的创建和遍历(中序遍历)
struct BiTNode{\/\/定义数据结构 char data;BiTNode *lchild,*rchild;};void InitBtree(BiTNode * &BT){\/\/初始化二叉树 BT=NULL;} void CreateBiTree(BiTNode *&BT,char *str){\/\/建立二叉树 BiTNode *s[MaxSize];\/\/这里定义了一个数组用作堆栈方便检查输入和操作 int top=-1;BT=NULL;BiTNode...

关于数据结构C语言二叉树的程序,请人帮忙看看~谢谢
typedef int status; \/\/C中没有status类型,所以想使用这个类型你必须定义它 define OK 0 define ERROR -1 define OVERFLOW -2 \/\/OK、OVERLFLOW、ERROR这些宏的定义头文件中是没有的,所以你必须自己定义它们 typedef struct BiTNode{ char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;ty...

关于数据结构二叉树先序遍历递归的问题
\/\/按先序次序输入二叉树中的结点的值(一个字符),空格字符表示空树 \/\/构造二叉树表表示的二叉树T void CreateBitTree(BitTree &T){ char ch;scanf("%c",&ch);if(ch==' ') T=NULL;else { T=(BitNode *)malloc(sizeof(BitNode));T->data=ch;\/\/生成根结点 CreateBitTree(T->...

数据结构中,怎样以二叉链表为存储结构,分别写出求二叉树结点总数及叶...
cout<<"请输入二叉树内容:第一行为节点总数n ,后面的n行是节点的具体形式:"<<endl; cout<<"n= "; cin>>n; p=(inform* )malloc( n*sizeof(inform) ); \/*开辟的一个叶子结构体型的指针数组*\/ inform *p1; p1=p; for(int i=0; i<n; i++) { cin>>(p+i)->data>>(p+i)->l>>(...

C语言版数据结构程序设计求大神帮助
\/* 二叉树应用 *\/ #include "stdio.h" #include "stdlib.h" typedef char ElemType; \/* 结点数据的类型 *\/ typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild; }BiTNode; \/* 树结点类型 *\/ \/*栈的定义及基本操作*\/ #define MaxSize 100 typedef BiTNode* SElemType; ...

二叉链表表示二叉树,复制一颗二叉树,如何用C语言算法设计,希望答案正确...
生成一个二叉树的结点(其数据域为item,左指针域为lptr,右指针域为rptr)BiTNode *GetTreeNode(TElemType item, BiTNode *lptr , BiTNode *rptr ){ if (!(T = (BiTNode*)malloc(sizeof(BiTNode))) exit(1); T-> data = item; T-> lchild = lptr; T-> rchild = rptr; return T;}BiTNode *...

相似回答