#include <stdio.h> #include <stdlib.h> typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild; } BiTNode, *BiTree; // 创建一颗二叉树, 约定用户遵照前序遍历的方式输入数据 CreateBiTree(BiTree *T) { char c; scanf("%c", &c); if (' '==c) { *T = NULL; } else { *T = (BiTNode *)malloc(sizeof(BiTNode)); (*T)->data = c; CreateBiTree (&(*T)->lchild); CreateBiTree (&(*T)->rchild); } } //访问二叉树节点的具体操作 visit(char c, int level) { printf("%c is in %d level ", c, level); } // 遍历二叉树 PreOrderTraverse(BiTree T, int level) { if (T) { visit(T->data,level); PreOrderTraverse(T->lchild,level+1); PreOrderTraverse(T->rchild,level+1); } } int main() { int level = 1; BiTree T = NULL; CreateBiTree(&T); PreOrderTraverse(T,level); }