用C语言创建一棵二叉树并使其显现出来

要尽量简单些,难的小弟看不懂一定要用C语言哦!!C++小弟没学过!!
谢谢!!

#include <stdio.h>//头文件
#include <stdlib.h>
#include <malloc.h>
typedef struct BiTNode//定义节点
{
char data;//元素类型为字符
struct BiTNode *lchild,*rchild;//左孩子右孩子
}
BiTNode,*BiTree;
BiTree CreateBiTree()//用先序递归建树
{
char p;BiTree T;
scanf("%c",&p);
if(p==' ') T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));//开辟空间
T->data=p;
T->lchild=CreateBiTree(T->lchild);
T->rchild=CreateBiTree(T->rchild);
}
return (T);
}
void PreOrder(BiTree T)先序遍历
{
if(T!=NULL)
{
printf("%c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);

}
}

void main()//主函数
{
BiTree Ta;
Ta=CreateBiTree();
printf("树:");
printf("\n");
PreOrder(Ta);
}
就这个吧,挺简单的
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言建立二叉树并先序输出,
void creat(struct tree *s){ int a;scanf("%d",&a);if(a==0){ s=NULL; \/\/这里的s是个静态地址,不能赋值 return;}

请问C语言如何创建二叉树???
} Tree;void insert(Tree* tree, int value)\/\/创建树 { Node* node=(Node*)malloc(sizeof(Node));\/\/创建一个节点 node->data = value;node->left = NULL;node->right = NULL;if (tree->root == NULL)\/\/判断树是不是空树 { tree->root = node;} else {\/\/不是空树 Node* temp...

数据结构中用c语言建立二叉树的程序
if(i==1)BT=p;else { 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()

有谁能够告诉我c语言的实验报告怎么写?
要求生成二叉树中编号,从1开始进行连续编号,每个结点的编号大于其左右子树中孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,请给出对二叉树中结点的实现如上要求编号并按如下树状形式打印出相应点编号的程序。测试数据:输入 AB∪D∪∪CE∪F∪∪∪ (其中符号“∪”表示空格...

c语言 关于二叉树的创建和遍历(中序遍历)
void CreateBiTree(BiTNode *&BT,char *str){\/\/建立二叉树 BiTNode *s[MaxSize];\/\/这里定义了一个数组用作堆栈方便检查输入和操作 int top=-1;BT=NULL;BiTNode *p=NULL;int k, j=0;char ch;ch=str[j];while(ch!='\\0'){ switch(ch){ case '(':top++;s[top]=p;k=1;break;case...

二叉树的建立与遍历(C语言)
){ char i;cout<<"请选择所需功能('A'输出该二叉树序列,'B'输出交换后二叉树序列)"<<endl;cin>>i;bitreptr p;cout<<"输入数据:";Create(p);switch(i){ case 'A':{ cout<<"前序:";preorder(p);cout<<endl;cout<<"中序:";midorder(p);cout<<endl;cout<<"后序:";...

用C语言实现二叉排序树排序,并按递减顺序打印各个数据
InsertBST(bt,A[i]); \/\/将关键字A[i]插入二叉排序树T中 i++;} return bt; \/\/返回建立的二叉排序树的根指针 } void DispInDescrease(BSTNode *bt){ \/\/按从小到大输出查找树中的内容,对该树中序遍历即可 if(bt){ DispInDescrease(bt->lchild);printf("%d\\t",bt->key);Dis...

...某一二叉树前序遍历及中序遍历序列,构造二叉树并输出该二叉树后序...
\/\/\/建立树\/\/\/ b_tree creat(int *date,int len){ b_tree root=NULL;int i;for(i=0;i<len;i++)root=insert(root,date[i]);return root;} \/\/\/中序打印\/\/\/ void print1(b_tree root){if(root!=NULL){ print1(root->left);printf("%d->",root->date);print1(root->right);...

C语言 什么叫完全二叉树?
定义:如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。例:特点:叶子结点只可能在最大的两层上出现,对任意结点,若其右分支下的子孙最大层次为L,则其左分支下的子孙的最大层次必为L 或 L+1。完全二叉树...

数据结构中关于用c++语言建立二叉树的问题,求代码,急!!!
\/*先序遍历二叉树, root为指向二叉树根结点的指针*\/ { if (root!=NULL){ printf("%c",root->data); \/*输出结点*\/ preOrder(root ->LChild);\/*先序遍历左子树*\/ preOrder(root ->RChild); \/*先序遍历右子树*\/ } } void inOrder(BiTree root){ if(root!=NULL){ inOrder(...

相似回答