ToB企服应用市场:ToB评测及商务社交产业平台

标题: 遍历二叉树 [打印本页]

作者: 水军大提督    时间: 2024-4-11 22:30
标题: 遍历二叉树
二叉树

前言
二叉树的遍历主要有深度优先遍历和广度优先遍历,深度优先遍历是优先访问一个子树上的所有节点,访问的属性是竖向的,而广度优先遍历则是优先访问同一层的所有节点,访问属性是横向的。
深度优先遍历

深度优先遍历主要有三种顺序:
这三种遍历顺序用递归可以很容易实现,主要讲的是非递归的实现方法。而要使用迭代的方法来遍历二叉树,需要用到栈的特性。
前序遍历(非递归C++)

算法:
[code]void preOrder(BTNode* root) {    stack S;    BTNode* cur = NULL;    if(root == NULL)        return;    S.push(root);   //根节点入栈    while(!S.empty()) {        //访问顺序"根左右"        cur = S.top();        coutleft;        }        //访问最左孩子        cur = S.top();        cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4