1.递归遍历

递归遍历非常简单,,,,,,

1.1前序遍历
void preOrderTraverse(BSTreeNode *root){    if (root != NULL)    {        printf("%d \n", root->data);        preOrderTraverse(root->left);        preOrderTraverse(root->right);    }}
1.2中序遍历
void InOrderTraverse(BSTreeNode *root){    if (root != NULL)    {                InOrderTraverse(root->left);        printf("%d \n", root->data);        InOrderTraverse(root->right);    }}
1.3后序遍历
void PostOrderTraverse(BSTreeNode *root){    if (root != NULL)    {                PostOrderTraverse(root->left);        PostOrderTraverse(root->right);        printf("%d \n", root->data);    }}

2.非递归遍历

栈和队列的构建 详见其余博文

2.1前序遍历
void preOrderTraverseNR(BSTreeNode *root){    //建设栈    struct LinkedStack *Stack;    Stack = initStack();    while(NULL != root){        printf("%d \n", root->data);        if (NULL != root->right)        {            push(Stack, root->right);        }        if (NULL != root->left)        {            push(Stack, root->left);        }        root = pop(Stack);    }    free(Stack);    Stack = NULL;}

下周持续