大学的学习已经过去了一个学期,曾经以为度过了高中就不再迷茫了,到现在才知道,原来迷茫部分时段更不分年龄。
无意中听到段老说:迷茫但行动得跟上。我觉得这句话太对了,很多人迷茫着迷茫着就无所事事,等到想努力的时候却发现缺失的太多了,想补的时候堆积的知识已经如一座泰山了……
下面是我今天的学习随笔与大家分享一下:
—— 树
简单介绍一下,今天分享的是二叉树的遍历。
分别有 先序,中序和后序
/*先序遍历*/
void PreOrder(BiTree root)
{
if(root!=null)
{
visit(root->data); //访问根节点
visit(root->data); //访问根节点
preorder(root->lchild);
preorder(root->rchild);
}
}
代码理解——如果根节点不为空,那就访问根节点,然后遍历”左孩子““右孩子”,再以左孩子作为根节点做递归。
/*中序遍历*/
void inorder(bitree root)
{
if(root!=null)
if(root!=null)
{
inorder(root->lchild);
visit(root->data);
inorder(root->rchild);
}
}
代码理解——如果根节点不为就空遍历“左孩子”再访问根节点最后遍历“右孩子“ 再以之前的“左孩子”为根节点做递归。
/*后序遍历*/
void postorder(bitree root)
{
if(root!=null)
if(root!=null)
{
postorder(root->lchild);
postorder(root->rchild);
postorder(root->data);
}
}
代码理解——判断节点是否为空,不为空便执行条件判断,遍历“左孩子”“右孩子”最后访问根节点,再以”左孩子“为根节点做递归。
总结 先、中、后序遍历,都是围绕着根节点,先序根节点在最前,中序根节点在中间,后序根节点在最后。
这里解释一下,二叉树遍历是从上到下从左到右。
好了,本周的随笔到这里也结束了,希望可以带给大家帮助。