二叉树的递归遍历

    二叉链表
    二叉树每个结点最多两个孩子,所以设计二叉树的结点结构是考虑两个指针指向该结点的两个孩子
    另外还可以增加指针指向该结点的双亲结点,那这时三个指针的链表叫做三叉链表

#include<iostream>

typedef char Elemtype;
typedef struct BiTNode {
	Elemtype data;	//数据域
	BiTNode *lchild, *rchild;	//指向该节点的左右孩子指针
}BiTNode,*BiTree;	//二叉树结点结构
//先序遍历
void PreOrder(BiTree T) {
	if (T) {
		printf("%c", T->data);	//访问根结点
		PreOrder(T->lchild);	//递归遍历左子树
		PreOrder(T->rchild);	//递归遍历右子树
	}
}
//中序遍历
void InOrder(BiTree T) {
	if (T) {
		InOrder(T->lchild);		//递归遍历左子树
		printf("%c", T->data);	//访问根结点
		InOrder(T->rchild);		//递归遍历右子树
	}
}
//后续遍历
void PostOrder(BiTree T) {
	if (T) {
		PostOrder(T->lchild);	//递归遍历左子树
		PostOrder(T->rchild);	//递归遍历右子树
		printf("%c", T->data);	//访问根结点
	}
}

猜你喜欢

转载自blog.csdn.net/tnxlcn/article/details/86666790