c语言建树代码,高手进

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:33:21
代码如下,我是想输入abc##de#g##f###来建树
#include <stdio.h>
#include <malloc.h>
struct Node
{
char p;
struct Node *lchild;
struct Node *rchild;
};
Node stack[16];
Node *head=NULL;

void createTree(Node *root)
{
char c;
c=getchar();
if(c=='#')
root=NULL;
else
{
root=(Node *)malloc(sizeof(Node));
root->p=c;
createTree(root->lchild);
createTree(root->rchild);
}
}

void printTree(Node *root)
{
if(root)
{
printTree(root->lchild);
printf("%d",root->p);
printTree(root->rchild);
}
}

void main()
{
createTree(head);
printf("%d",head->p);
printTree(head);
}

给你我以前写好的程序,你参考下吧
#include<iostream>
using namespace std;

struct BTree
{char data;
BTree*lchild,*rchild;
};

void PreOrderTraverse( BTree *T ) {//先序.
if(T){
cout<<T->data ;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
} // PreOrderTraverse

void InOrderTraverse( BTree *T ) {//中序.
if(T){
InOrderTraverse(T->lchild);
cout<<T->data ;
InOrderTraverse(T->rchild);
}
} // InOrderTraverse
void PosOrderTraverse( BTree *T ) {//后序.
if(T){
PosOrderTraverse(T->lchild);
PosOrderTraverse(T->rchild);
cout<<T->data;
}
} // PosOrderTraverse
BTree *CreateBiTree(BTree *T)
{

char ch;
ch=getchar();
if(ch=='#')T=NULL;
else{
if(!(T=(BTree *)malloc(sizeof(BTree))))exit(0);
T->data =ch;
T->