树的某节点的所有父节点
来源:互联网 发布:php websocket教程 编辑:程序博客网 时间:2024/05/17 15:21
http://blog.csdn.net/yhmhappy2006/article/details/1566865定位一个节点递归实现为:node FindNode(const node root,int val){ node n = root; if (NULL == n) return NULL; if (n->_value == val) return n; node p = FindNode(n->_lchild,val); if (NULL == p) return FindNode(n->_rchild,val); else return p;}
输出到当前节点的所有路径,也就是当前节点的所有父亲节点集合(这个很有用的,呵呵,知道的人自然知道:))。这个实现其实是根据中序遍历得到的,采用中序遍历的方式查找节点,当查找到当前节点的时候堆栈中保存的就是当前节点以及当前节点的所有父亲节点。实现代码为:
int* GetParent(const node root,int val){ assert(NULL != root); if (root->_value == val) { cout<<"found: "<<root->_value<<endl; int* prt = new int(root->_value); return prt; } stack<node> tree; node n = root; node tmp = NULL; while ((!tree.empty()) || (NULL != root)) { while (n != NULL) { tree.push(n); n = n->_lchild; } if (!tree.empty()) { int len = tree.size(); int* prt = new int[len]; int i = 0; tmp = tree.top(); if (tmp->_value == val) { while (tree.size() > 0) { prt[i++] = tree.top()->_value; cout<<tree.top()->_value<<"->"; tree.pop(); } cout<<endl; return prt; } else n = n->_rchild; } } return NULL;}
- 树的某节点的所有父节点
- 删除树节点下的所有节点
- 打印二叉树中某个节点的所有父节点
- sql 查找节点下的所有子节点,查找节点的所有父节点
- 递归法找出某节点的所有父节点直到根节点
- 通用获取父节点/子节点/子节点下所有节点ID的存储过程
- 通用获取父节点/子节点/子节点下所有节点ID的存储过程
- Ztree 展开某节点下的所有的子节点
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- 使用表函数查找某节点的所有子节点
- ztree中获取某节点的所有叶子节点
- ztree中获取某节点的所有叶子节点
- oracle查询某节点下的所有子节点
- ztree递归查询某节点下的所有子节点
- HDU 3308【线段树-query:区间最长单调上升序列,update:结点更新,区间合并】
- TDGG 笔记 GNU C Extension
- opengl实现bezier、b曲线和曲面,16个控制点的4*4bezier块;最后可以看到茶壶teapot的实现
- 用到gallery的保存自定义联系人
- 【转】window7下Word 2007报“Microsoft office word已停止工作“
- 树的某节点的所有父节点
- POJ 1177 Picture & hdu 1828 Picture(扫描线)
- MFC之ListBox控件样式扩展
- 想念IT行业,想念当年在无锡学习Java的日子,想念同学们
- 处女笔——淘宝笔试
- Bitmap和canvas的应用
- gcc/g++基本命令简介
- XML-1 20110926
- SCJP试题分析