XML遍历文档树(广度优先与递归)
2011-01-21 14:55
169 查看
/// <summary> /// 递归遍历文档树 /// </summary> /// <param name="currentNode"></param> public void DOMDepthFirst(XmlNode currentNode) { XmlNode node = currentNode.FirstChild; while (node != null) { DOMDepthFirst(node); node = node.NextSibling; } //do something else with currentNode herer } /// <summary>广度优先遍历文挡树(非递归)</summary> /// <param name="root">遍历的入口点,如果需要遍历整个文挡则是XmlDocument对象</param> public void DOMBreadthFirst(XmlNode root) { Queue queue = new Queue(); queue.Enqueue(root); XmlNode currentNode = null; try { while (true) { //如果queue为空,则抛错,跳出try section,这里是while循环的退出条件 currentNode = (XmlNode)queue.Dequeue(); if (currentNode.HasChildNodes) { foreach (XmlNode child in currentNode.ChildNodes) { queue.Enqueue(child); } } } } catch (System.InvalidOperationException ex) { //throw ex ; } } }
相关文章推荐
- 深度优先遍历与广度优先遍历 递归与非递归思路
- (百度笔试)简要说明树的深度优先、广度优先遍历算法,及非递归实现的特点
- C++非递归遍历删除树节点——广度优先,逐层删除
- 无向图的邻接矩阵,深度优先遍历广度优先遍历的递归与非递归算法
- 【转】循环递归遍历XML文档或按某要求遍历XML文档
- 无向图的邻接矩阵,深度优先遍历和广度优先遍历的递归与非递归算法
- 二叉树的递归,非递归遍历,深度优先遍历,广度优先遍历
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 二叉树的深度优先递归、非递归遍历、广度优先遍历 实例
- 无向图的深度优先遍历和广度优先遍历(递归)
- 树的深度优先遍历和广度优先遍历非递归实现.
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 简要说明树的深度优先、广度优先遍历算法,及非递归实现的特点
- 树的广度优先遍历(非递归)和深度优先遍历
- 二叉树基本操作的递归实现(二叉树建立,先序,中序,后序,深度的递归遍历。广度优先,高度优先的非递归遍历)
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 二叉树构建,先序,中序,后序遍历(以及非递归实现),广度优先遍历
- 建立有向图的邻接表,深度优先遍历和广度优先遍历的递归与非递归算法,判断是否是有向无环图,并输出一种拓扑序列
- 图 深度优先遍历 广度优先遍历 非递归遍历 图解算法过程
- 树的深度优先遍历和广度优先遍历非递归实现.