#include<bits/stdc++.h>
#define MAXSIZE 100
#define m 3
using namespace std;
typedef char datatype;
typedef struct node{
datatype data;
int parent;
}node;
typedef struct tree{
node treelist[MAXSIZE];
int length,root;
}tree; //双亲表示法
typedef char datatype;
typedef struct node{
datatype data;
struct node *child[m];
}node, *tree;
tree root; //指针形式的孩子表示法
typedef char datatype;
typedef struct node{
int child;
struct node*chnode;
}chnode, *chpoint;
typedef struct{
datatype data;
chpoint firstchild;
}node;
typedef struct{
node treelist [MAXSIZE];
int length,root;
}tree;//链表形式的孩子表示法
typedef char datatype;
typedef struct node {
datatype data;
struct node *firstchild, *rightsibling;
}node, *pnode;
pnode root; //二叉树表示法
int main(){
return 0;
}
void preorder(tree p){ //指针形式的表示法-前序遍历
int i;
if(p!=NULL){
printf("%c",p->data);
for(i=0;i<m;i++){
preorder(p->child[i]);
}
}
}
void postorder(tree p){ //指针形式的表示法-后序遍历
int i;
if(p!=NULL){
for(i=0;i<m;i++){
postorder(p->child[i]);
printf("%c", p->data);
}
}
}
tree createtree(){ //建立一颗三度的树
int i;
tree p;
char ch;
if((ch=getchar())=='#'){
p=NULL;
}
else{
p=(tree)malloc(sizeof(node));
p->data=ch;
for(i=0;i<m;i++){
p->child[i]=createtree();
}
}
}
void levelorder(tree t){ //指针表示法-层次遍历
tree queue[100];
tree p;
int f=0,r=1,i;
queue[0]=t;
while(f<r){
p=queue[f];
printf("%c", p->data);
f++;
for(i=0;i<m;i++){
if(p->child[i]!=NULL){
queue[r]=p->child[i];
r++;
}
}
}
}
1.指针形式的表示法-前序遍历
2.指针形式的表示法-后序遍历
3.建立一颗三度的树