纯javascript实现dom树的遍历
来源:互联网 发布:淘宝宝贝展示框架代码 编辑:程序博客网 时间:2024/06/07 02:57
二叉 DOM 树的遍历
前序遍历
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">首先访问根结点,然后遍历左子树,最后遍历右子树</code>
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">修改为DOM二叉树:</code>
中序遍历
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">首先遍历左子树,然后访问根结点,最后遍历右子树。</code>
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">修改为DOM二叉树:</code>
后序遍历
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">首先遍历左子树,然后遍历右子树,最后访问根结点。</code>
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">修改为DOM二叉树:</code>
多叉 DOM 树的遍历
广度优先遍历
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">首先遍历根节点,然后访问第一层节点,第二层节点,....,直到访问到最后一层。</code>
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">借助于队列,用非递归的方式对多叉树进行遍历</code>
深度优先遍历
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">首先遍历根节点,然后沿着一条路径遍历到最深的一层,最后在逐层返回。</code>
<code style="font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; font-size: 1em; color: inherit; padding: 0px; white-space: inherit; background: none;">借助于栈,实现多叉 DOM树 的深度优先遍历。</code>
二叉 DOM 树的前序、中序、后序遍历,是深度优先遍历的特例
因此,参考深度优先遍历,借助栈,可以以非递归的方式,实现二叉 DOM 树的 前序、中序和后序遍历非递归实现二叉 DOM 树的前序遍历
非递归实现二叉 DOM 树的中序遍历
非递归实现二叉 DOM 树的后序遍历
- 每个节点,都压入栈两次;
- 在循环体中,每次弹出一个节点赋给node
- 如果node仍然等于栈的头结点,说明node的孩子们还没有被操作过,应该把它的孩子们加入栈中
- 否则,说明是第二次弹出该节点,访问node。
也就是说,第一次弹出,将node的孩子压入栈中,第二次弹出,访问node
0 0
- 纯javascript实现dom树的遍历
- JavaScript 实现 DOM树 的遍历
- Javascript Dom树遍历
- JavaScript 遍历DOM树
- JS实现DOM树的遍历
- javascript实现树的遍历
- javascript DOM的操作,更新,遍历,添加
- javascript DOM 遍历
- Javascript 遍历DOM Tree
- JavaScript 遍历DOM
- HTML#DOM树的遍历
- javascript实现二叉树的遍历
- Javascript 的 DOM 树
- 纯javascript实现广告的无缝滚动
- 纯javascript实现div的伸缩
- 纯javascript实现的选字游戏
- 纯JavaScript实现Ajax
- 纯C语言实现的AVL树(插入&删除&前序遍历输出)
- crontab at & 后台定期运行shell脚本
- Flume 1.7.0 新特性 - Taildir Source
- 经典书单 —— 计算机图形学
- 用JavaScript控制自动唤起输入法键盘
- Android进程总结
- 纯javascript实现dom树的遍历
- jquery datatables如何去掉搜索框和底部文字、更改样式
- Ubuntu启动终端
- Spring整合Ehcache管理缓存
- iOS 产品上线BUG调试
- boa 流程分析
- find和xargs、exec、ok的故事
- Codeforces Round #375 (Div. 2) D. Lakes in Berland
- 跨域问题的解决方法