这种遍历 好像是有个名字的,忘了! 做html编辑器的时候,想到了这样一种算法
算法比较简单,没有采用递归,javascript实现如下,可以轻易转为其他语言
var queue= new Array();
var started = false;
var scanned = false;
var temp = root;
while (temp) {
if(!scanned&&temp.firstChild){
temp = temp.firstChild;
continue;
}
queue.push(temp);
if(temp.nextSibling){
temp = temp.nextSibling;
scanned = false;
continue;
}
scanned = true;
temp = temp.parentNode;
}
return queue;
分享到:
相关推荐
先序非递归遍历二叉树: a b c 中序递归遍历二叉树: b a c 中序非递归遍历二叉树: b a c 后序递归遍历二叉树: b c a 后序非递归遍历二叉树: b c a 二叉树的深度是2 二叉树的结点个数是3 Press any key to ...
非递归先序遍历二叉树: 非递归中序遍历二叉树: 非递归后序遍历二叉树: 非递归中序遍历二叉树(算法2): 层次遍历二叉树: 递归计算单分支结点: 递归计算双分支结点: 递归计算叶子数: 二叉数的深度:...
数据结构的代码实现,非递归算法,。
详细介绍了JAVA中二叉树的非递归遍历方式,三种方式都是采用栈来辅助完成,其中前序遍历采用的是先入右子节点再入左子节点的方法,这样弹出栈时左在前,右在后。中序遍历的话则是要先一直到达最左的子节点,然后才弹...
这个程序是用c++的类方法构造一颗二叉树,遍历有递归和非递归二种
一种二叉树非递归遍历算法的C语言实现.pdf
本代码包括三部分的内容,其一是Java文件遍历,其二是Java的非递归前序,中序以及后序遍历,最后是前后序编码的生成问题。
数据结构 二叉树三种遍历的非递归算法(背诵版). 数据结构 二叉树三种遍历的非递归算法(背诵版). 数据结构 二叉树三种遍历的非递归算法(背诵版).
本内容对二叉树前中后序遍历和K叉树前后序遍历等5种遍历,用一种十分简单的策略,给出了非递归算法。
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全...
用简单的图示说明了一种易理解的非递归遍历二叉树的算 法,实现了此算法,并说明了它的正确性,分析了它的时间及空间复杂度。
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现...
现举一个非递归遍历的方法如下,供大家参考。 具体代码如下: class Solution { public: vector<int> preorderTraversal(TreeNode *root) { vector<int> out; stack<TreeNode> s; s.push(root); while(!s....
1.先序遍历非递归算法#define maxsize 100typedef struct{ Bitree Elem[maxsize]; int top;}SqStack;void PreOrderUnrec(Bitree t){ SqStack s; StackInit(s); p=t; while (p!=null || !StackEmpty(s)) { while (p!=...
而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历前序遍历按照“根结点-左孩子-右孩子”的...
先使用先序的方法建立一棵二叉树,然后分别使用递归与非递归的方法实现前序、中序、后序遍历二叉树,并使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,...
有测试结果 (一) 从键盘输入二叉树的扩展先序遍历序列,建立二叉树的二叉链表存储结构; (二) 分别用递归和非递归算法实现二叉树的三种遍历;
二叉树的三种遍历的非递归算法背诵版,关于数据结构课件总结
前序、中序、后序的非递归遍历中,要数后序最为麻烦,如果只在栈中保留指向结点的指针,那是不够的,必须有一些额外的信息存放在栈中。 方法有很多,这里只举一种,先定义栈结点的数据结构 typedef struct{Node *...
从键盘输入二叉树的各结点值,按先序递归方式创建二叉树 2 )分别实现先序、中序、后序递归遍历二叉树 3 )输出二叉树的高度 ... 5 )输出二叉树的先序非递归遍历下的结点访问次序 6 )以菜单方式运行