遍历
单链表的遍历是指从第一个结点开始(下标为0的结点),按照某种次序依次访问每一个结点(正序(0到n)或逆序(n到0))
二叉树的遍历是指从根结点开始,按照某种次序依次访问二叉树中的所有结点 (递归实现) 前序遍历
若二叉树为空 空操作访问若二叉树不为空 访问根节点的数据前序遍历左子树前序遍历右子树void pre_traverse(BTreeNode* root) { if(root != NULL) { printf(“%c”,((struct Node*)node->v)); pre_traverse(root->left); pre_traverse(root->right); } }
中序遍历:
若二叉树为空 空操作访问若二叉树不为空 中序遍历左子树访问根节点中的数据中序遍历右子树后序遍历:
若二叉树为空 空操作访问若二叉树不为空 后序遍历左子树后序遍历右子树访问根节点中的数据层次遍历:
若二叉树为空 空操作访问若二叉树不为空 访问根节点中的数据访问第二层所有结点的数据访问第三层所有结点的数据…对于此二叉树:
前序遍历:1, 2, 4, 8, 9,5, 10 , 3, 6, 7中序遍历:8, 4,9, 2,10,5,1,6,3,7后续遍历:8,9,4,10,5,2,6,7,3,1层次遍历:1,2,3,4,5,6,7,8,9,10