前序遍历(ABDECF):
typedef struct TreeNode { int data; struct TreeNode *left; struct TreeNode *right; struct TreeNode *parent; } TreeNode; void pre_order(TreeNode *Node) { if(Node != NULL) { printf("%d ", Node->data); pre_order(Node->left); pre_order(Node->right); } }
中序遍历(DBEAFC):
typedef struct TreeNode { int data; struct TreeNode *left; struct TreeNode *right; struct TreeNode *parent; } TreeNode; void middle_order(TreeNode *Node) { if(Node != NULL) { middle_order(Node->left); printf("%d ", Node->data); middle_order(Node->right); } }
后续遍历(DEBFCA):
typedef struct TreeNode { int data; struct TreeNode *left; struct TreeNode *right; struct TreeNode *parent; } TreeNode; void last_order(TreeNode *Node) { if(Node != NULL) { last_order(Node->left); last_order(Node->right); printf("%d ", Node->data); } }
层次遍历(ABCDEF):
int level_order(TreeNode * Tree){ queue<TreeNode *> q; q.push(Tree); while(!q.empty()){ cout<<q.front()->data<<" "; TreeNode *tmp = new TreeNode; tmp->data=q.front()->data; tmp->left=q.front()->left; tmp->right=q.front()->right; q.pop(); if(tmp->left!=NULL) q.push(tmp->left); if(tmp->right!=NULL) q.push(tmp->right); } cout<<endl; }
606 total views, no views today