
二叉树/树
tianmo2010
这个作者很懒,什么都没留下…
展开
-
二叉排序树中删除一个节点
//从T节点开始删除,parent为T的父节点,key为要删除的节点的关键字值//返回删除后T位置的新指针BiNode* DelNode(BiNode* T, BiNode* parent, int key){ BiNode* s; BiNode* p;原创 2011-03-30 17:58:00 · 4145 阅读 · 0 评论 -
二元树中和为某一值的所有路径
以下提供繁体和简体的相互转换函数,本函数也是在网络上收集到经本人修改后适合C++语言使用的函数。 //简体到繁体int ConvertGb2312ToBig5(string& _DstText,const string& _SrcString){ char* pszGbt=NULL; //Gb编码的繁体字符 char* pszGbs=NULL; //Gb编码的简体字符 wcha转载 2012-08-21 18:58:18 · 1111 阅读 · 0 评论 -
求二元查找树的镜像
腾讯是我在中国互联网第二敬仰的公司。百度是给我第一份工作的公司。既然这么多人说当年,那我说也说当年。08年本科毕业,找工作只投了一份简历,百度网页搜索部。 09年离开,转眼4年过去了,我想说,非常庆幸自己的选择。具体到这个问题:首先,这两家公司都是中国最Top的IT公司,是一个级别的,不存在好坏。其次,C++不是方向,只是一个工具,在这两家公司,如果工作需要,精通它转载 2012-12-20 19:21:51 · 1121 阅读 · 0 评论 -
树的子结构
第一章 cgilib例一个简单的读取并处理表格请求数据的cgilib.pl例子:#!/usr/bin/perlsub readGetData{ # 指定局部变量queryString用以保存和传递函数的参数 local(*queryString) = @_if @_; # 读取环境变量QUERY_STRING的值赋给变量$queryStr转载 2011-09-02 18:22:19 · 642 阅读 · 0 评论 -
二叉树的非递归遍历(递归和非递归)
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历原创 2013-09-17 23:48:31 · 1593 阅读 · 0 评论 -
二叉树两个结点的最低共同父结点【算法】
题目:二叉树的结点定义如下:struct TreeNode{ int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight;};输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。分析:求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。第 一变种是二叉树是原创 2011-09-23 20:21:41 · 1169 阅读 · 0 评论 -
判断两棵二叉树是否相等
在这里要对一种情况进行说明1、当root1的左子树与root2的左子树相同,root1的右子树与root2的右子树相同时,这两颗二叉树相同。2、当root1的左子树与root2的右子树相同,root1的右子树与root2的左子树相同时,这两颗二叉树同样相同。以下是实现代码:bool IsBSTEqual(BNode* root1,BNode* root2){转载 2013-04-10 23:00:13 · 1777 阅读 · 0 评论 -
红黑树详解
1、红黑树介绍红黑树又称R-B Tree,全称是Red-Black Tree,它是一种特殊的二叉查找树,红黑树的每个节点上都有存储位表示节点的颜色,可以是红或黑。红黑树具有以下五个特性:1)每个节点或者是黑色,或者是红色2)根节点是黑色3)每个叶子结点(NIL,这里的叶子结点不是传统的叶子结点,是指为空的叶子结点)是黑色。4)如果一个结点是红色的,则它的子结点必须是黑色的5)从一个...转载 2011-09-11 12:45:26 · 838 阅读 · 0 评论 -
在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / \转载 2011-09-23 20:24:27 · 849 阅读 · 0 评论 -
已知前序遍历和中序遍历,求后序遍历
#include #include #include #define N 50struct Node /* 树结点类型 */{ char info; /* 数据域 */ struct Node* pa原创 2011-03-21 22:36:00 · 1982 阅读 · 2 评论 -
二叉树的构建与层次遍历实现
// BinaryTree.cpp : 定义控制台应用程序的入口点。//#include "stdio.h"#include "string.h"#include "malloc.h"int ntotal = 0,nleaf = 0;//ntotal表原创 2011-03-30 18:00:00 · 1431 阅读 · 0 评论 -
二叉排序树的创建
typedef struct BiNode{ int data; struct BiNode *lchild; struct BiNode *rchild;}BiNode;BiNode* Insert(BiNode* T, int data)原创 2011-03-30 18:01:00 · 945 阅读 · 0 评论 -
任意一棵二叉树中最大距离的两个节点【算法】
//后序 求 每个节点最远距离, 倒着遍历, 只遍历了一遍 O( N )//如果从上往下遍历 则 O( N*N ) int GetMaxPathLen( Node* root, int& maxLen ) //maxLen初始值传0{ //别用 全局变量(存在线程安全问题) if ( NULL == root ) return 0; int left = GetM...原创 2012-01-13 15:25:14 · 1715 阅读 · 0 评论