@chawuciren
        
        2018-10-03T17:03:50.000000Z
        字数 1534
        阅读 783
    未分类
#include<stdio.h>#include<stdlib.h>typedef struct _TreeNode{int data;struct _TreeNode* left;struct _TreeNode* right;} TreeNode;TreeNode* buildNode(int Data);void inorder(TreeNode* root);void before(TreeNode* root);void after (TreeNode* root);void iteration(TreeNode* root);int main(){TreeNode* root = NULL;TreeNode* Left = NULL;TreeNode* Right = NULL;root = buildNode(3);Left = buildNode(2);Right = buildNode(5);root->left = Left;root->right = Right;TreeNode* LeftLeft = NULL;LeftLeft = buildNode(1);Left->left = LeftLeft;TreeNode* RightRight = NULL;RightRight = buildNode(6);Right->right = RightRight;TreeNode* RightLeft = NULL;RightLeft = buildNode(4);Right->left = RightLeft;iteration(root);return 1;}TreeNode* buildNode(int Data){/* 分配出一个新结点,并用node指针指向它 */TreeNode *node = NULL;node = (TreeNode*)malloc( sizeof(TreeNode) );/* 初始化结点内容 */node->data = Data;node->left = NULL;node->right = NULL;/* 将该节点返回 */return node;}/中序遍历void inorder(TreeNode* root){if( root == NULL )return;inorder(root->left); // 先遍历左子树printf("%d\n", root->data); // 访问根结点inorder(root->right); //再遍历右子树}前序遍历void before(TreeNode* root){if( root == NULL )return;printf("%d\n", root->data); //先访问节点before(root->left); //遍历左子树before(root->right); // 再遍历右子树}/*后序遍历*/void after (TreeNode* root){if( root == NULL )return;after (root->left);// 后序遍历左子树after (root->right);// 后序遍历右子树printf("%d\n", root->data); // 访问节点}void iteration(TreeNode* root){TreeNode* temp=root->data;while(root!=0){printf("%d\n", root->data);root=root->left;}root=temp->right;{printf("%d\n", root->data);root=root->right;}}
在此输入正文
