遍历定义:

遍历用途:

遍历方法:



``



#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//二叉树的递归遍历
struct BinaryNode
{
//数据域
char ch;
//指针域
BinaryNode* lchild; //指向左孩子的指针
BinaryNode* rchild; //指向右孩子的指针
};
//递归遍历:传入根结点指针
void recursion(BinaryNode* root)
{
//先序遍历
if (root == NULL)
return;
//先根再左再右
printf("%c ", root->ch);
recursion(root->lchild);
recursion(root->rchild);
}
void output()
{
BinaryNode Anode = { 'A',NULL,NULL };
BinaryNode Bnode = { 'B',NULL,NULL };
BinaryNode Cnode = { 'C',NULL,NULL };
BinaryNode Dnode = { 'D',NULL,NULL };
BinaryNode Enode = { 'E',NULL,NULL };
BinaryNode Fnode = { 'F',NULL,NULL };
BinaryNode Hnode = { 'H',NULL,NULL };
BinaryNode Gnode = { 'G',NULL,NULL };
//建立关系
Anode.lchild = &Bnode;
Anode.rchild = &Fnode;
Bnode.rchild = &Cnode;
Cnode.lchild = &Dnode;
Cnode.rchild = &Enode;
Fnode.rchild = &Gnode;
Gnode.lchild =&Hnode;
//递归遍历算法
recursion(&Anode);
}
int main()
{
output();
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//二叉树的递归遍历
struct BinaryNode
{
//数据域
char ch;
//指针域
BinaryNode* lchild; //指向左孩子的指针
BinaryNode* rchild; //指向右孩子的指针
};
//递归遍历:传入根结点指针
void recursion(BinaryNode* root)
{
//中序遍历
if (root == NULL)
return;
//先左再根再右
recursion(root->lchild);
printf("%c ", root->ch);
recursion(root->rchild);
}
void output()
{
BinaryNode Anode = { 'A',NULL,NULL };
BinaryNode Bnode = { 'B',NULL,NULL };
BinaryNode Cnode = { 'C',NULL,NULL };
BinaryNode Dnode = { 'D',NULL,NULL };
BinaryNode Enode = { 'E',NULL,NULL };
BinaryNode Fnode = { 'F',NULL,NULL };
BinaryNode Hnode = { 'H',NULL,NULL };
BinaryNode Gnode = { 'G',NULL,NULL };
//建立关系
Anode.lchild = &Bnode;
Anode.rchild = &Fnode;
Bnode.rchild = &Cnode;
Cnode.lchild = &Dnode;
Cnode.rchild = &Enode;
Fnode.rchild = &Gnode;
Gnode.lchild =&Hnode;
//递归遍历算法
recursion(&Anode);
}
int main()
{
output();
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//二叉树的递归遍历
struct BinaryNode
{
//数据域
char ch;
//指针域
BinaryNode* lchild; //指向左孩子的指针
BinaryNode* rchild; //指向右孩子的指针
};
//递归遍历:传入根结点指针
void recursion(BinaryNode* root)
{
//中序遍历
if (root == NULL)
return;
//先左后右再根
recursion(root->lchild);
recursion(root->rchild);
printf("%c ", root->ch);
}
void output()
{
BinaryNode Anode = { 'A',NULL,NULL };
BinaryNode Bnode = { 'B',NULL,NULL };
BinaryNode Cnode = { 'C',NULL,NULL };
BinaryNode Dnode = { 'D',NULL,NULL };
BinaryNode Enode = { 'E',NULL,NULL };
BinaryNode Fnode = { 'F',NULL,NULL };
BinaryNode Hnode = { 'H',NULL,NULL };
BinaryNode Gnode = { 'G',NULL,NULL };
//建立关系
Anode.lchild = &Bnode;
Anode.rchild = &Fnode;
Bnode.rchild = &Cnode;
Cnode.lchild = &Dnode;
Cnode.rchild = &Enode;
Fnode.rchild = &Gnode;
Gnode.lchild =&Hnode;
//递归遍历算法
recursion(&Anode);
}
int main()
{
output();
return 0;
}