二叉树这种数据结构中必须有一个根节点,然后由这个根节点再往下延伸两个节点,在逻辑上是左子树和右子树 在由左右子树开始往下伸展各个节点
这样的树型结构遍历分前序 中序 后序 遍历方式 遍历均为 递归方式
前序 : 先从根节点的左子树开始往下遍历 在左子树节点中 的左节点开始 如果为空 则遍历右子树右子树为空则返回 到上一个子树节点 遍历它的 右子树
遍历顺序为 :1->2->4->8->9->5->10->11->3->6->12->13->7->14->15
代码如下
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node* left;
struct node* right;
} Node;
void preorder(Node* node)
{
if(node !=NULL)
{
printf("%d\n",node -> data);
preorder(node->left);
preorder(node->right);
}
}
void inorder(Node* node)
{
if(node !=NULL);{
inorder(node -> left);
printf("%d\n",node -> data);
inorder(node -> right);
}
}
int main()
{
Node n1;
Node n2;
Node n3;
Node n4;
n1.data=5;
n2.data=6;
n3.data=7;
n4.data=8;
n1.left =&n2;
n1.right =&n3;
n2.left=&n4;
n2.right=NULL;
n3.left=NULL;
n3.right=NULL;
n4.left=NULL;
n4.right=NULL;
preorder(&n1);
// inorder(&n1);
return 0;
}