二叉树
1.节点定义
struct TreeNode{
ElementType data; //数据
TreeNode *leftChild; //左子树
TreeNode *rightChild; //右子树
}
2.前序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
visit(root->data);
PreOrder(root->leftChild);
PreOrder(root->rightChild);
return;
}
3.中序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
PreOrder(root->leftChild);
visit(root->data);
PreOrder(root->rightChild);
return;
}
4.后序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
PreOrder(root->leftChild);
PreOrder(root->rightChild);
visit(root->data);
return;
}
5.层次遍历
void LevelOrder(TreeNode *root){
queue<TreeNode*> myQueue;
if (root != NULL){
myQueue.push(root);
}
while (!myQueue.empty()){
TreeNode *current = myQueue.front();
Queue.pop();
visit(current->data);
if (current -> leftChild != NULL) {
myQueue.push(current->leftChild);
}
if (current -> rightChild != NULL) {
myQueue.push(current->rightChild);
}
}
return;
}