树就是一对多的关系,树是非线性结构,他是由递归定义的,树是由一个根结点和子树所构成的,树中最常见的就是二叉树,
下面讨论的都是二叉树,二叉树是由根结点和左右子树构成的,而研究某一个结构上面的操作,就先要让他可以在计算机中表示,即怎么存储他,树有顺序存储,也有链式存储,
因为顺序存储二叉树后续操作不怎么好,所以一般用链式存储二叉树,
1.二叉树结点的定义
#include <stdio.h> #include<stdlib.h> typedef struct BiNode { int data; struct BiNode* lchild, *rchild; }BiNode,*BiTree;
2.前中后序遍历
//1.前序遍历 void InOrderTraverse(BiTree T) { if (T) { printf("%d", T->data); InOrderTraverse(T->lchild); InOrderTraverse(T->rchild); } } //2.中序遍历 void InOrderTraverse(BiTree T) { if (T) { InOrderTraverse(T->lchild); printf("%d", T->data); InOrderTraverse(T->rchild); } } //3.后序遍历 void InOrderTraverse(BiTree T) { if (T) { InOrderTraverse(T->lchild); InOrderTraverse(T->rchild); printf("%d", T->data); } }
好了,我们下回见,peace
原文:https://www.cnblogs.com/gitpy123/p/13442683.html