📄 1.c
字号:
#include<stdio.h>
#include"stdlib.h"
#define MAX 20
#define NULL 0
typedef int Status;
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild ;
}BiTNode,*BiTree;
Status CreateBiTree(BiTree *T)
{char ch;
ch=getchar();
if(ch=='#') (*T)=NULL;
else{(*T)=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
return 1;
}
void PreOrder(BiTree T)
{if(T){
printf("%2c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BiTree T)
{if(T)
{InOrder(T->lchild);
printf("%2c",T->data);
InOrder(T->rchild);
}
}
void PostOrder(BiTree T)
{if(T)
{PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%2c",T->data);
}
}
void LevelOrder(BiTree T)
{BiTree Queue[MAX],b;
int front,rear;
front=rear=0;
if(T)
{Queue[rear++]=T;
while(front!=rear)
{b=Queue[front++];
printf("%2c",b->data);
if(b->lchild!=NULL) Queue[rear++]=b->lchild;
if(b->rchild!=NULL) Queue[rear++]=b->rchild;
}
}
}
int depth(BiTree T)
{int dep1,dep2;
if(T==NULL) return 0;
else{dep1=depth(T->lchild);
dep2=depth(T->rchild);
return dep1>dep2?dep1+1:dep2+1;
}
}
main()
{BiTree T=NULL;
printf("Create a Binary Tree\n");
CreateBiTree(&T);
printf("The preorder is:\n");
PreOrder(T);
printf("\nThe inorder is:\n");
InOrder(T);
printf("\nThe postorder is:\n");
PostOrder(T);
printf("\nThe level order is:\n");
LevelOrder(T);
printf("\nThe depth is:%d\n",depth(T));
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -