递归生成二叉树 day2

原创 2015年11月20日 17:08:19

为了方便 决定把节点类 二叉树类写在一个cpp文件里面

节点类

struct Node
{
Node* pLeft;
Node* pRight;
char data;
}

二叉树的重构方法

Node* Rebuild(string preOrder,string midOrder)
{
    if(preOrder.size()==0)
        return NULL;

    if(midOrder.size()==0)
        return NULL;
    Node* pRoot = new Node;
    (pRoot)->data = preOrder[0];
    int root_pos = midOrder.find_first_of(preOrder[0]);

    if(root_pos == -1)
    {
        return NULL;
    }

    int left_ele_num = root_pos;

    int right_ele_num = preOrder.size()-left_ele_num-1;

    pRoot->pLeft=Rebuild(preOrder.substr(1,1+left_ele_num),midOrder.substr(0,left_ele_num));

    pRoot->pRight=Rebuild(preOrder.substr(root_pos+1,right_ele_num),midOrder.substr(root_pos+1,right_ele_num));
    return pRoot;
}

二叉树的创建即遍历(递归方式)

最近准备把数据结构书上的算法用代码实现一遍,在二叉树这块遇到了一点小问题,发现是自己指针这块还没过关,研究了一个小时候,终于明白二级指针的使用情况,(那些自认为自己指针过关的同学可不要停留在一级指针这...
  • u012997465
  • u012997465
  • 2016年04月06日 23:21
  • 1453

二叉树的非递归建立

1. 问题描述: 先序非递归建立一颗以二叉链表为存储结构的二叉树。例如建立如下所示的一颗二叉树                                  A                  ...
  • gaohuaid
  • gaohuaid
  • 2013年08月21日 22:38
  • 10353

Java实现二叉树的创建、递归/非递归遍历

最近复习数据结构中的二叉树的相关问题,在这里整理一下 这里包括: 1、二叉树的先序创建 2、二叉树的递归先序遍历 3、二叉树的非递归先序遍历 4、二叉树的递归中序遍历 5、二叉树的非递归中序遍历 6、...
  • u010829118
  • u010829118
  • 2014年08月10日 16:21
  • 2608

Java实现二叉树的定义和递归实现

注:转载之>>>http://blog.csdn.net/luoweifu/article/details/9077521 定义 最多有两棵子树的有序树,称为二叉树。二...
  • b1198103958
  • b1198103958
  • 2015年08月06日 15:58
  • 3104

二叉树(1)——二叉树的定义和递归实现

定义 最多有两棵子树的有序树,称为二叉树。二叉树是一种特殊的树。 递归定义:二叉树是n(n>=0)个有限结点构成的集合。N=0称为空二叉树;n>0的二叉树由一个根结点和两互不相交的,分别称为左子树...
  • luoweifu
  • luoweifu
  • 2013年06月11日 23:27
  • 11553

通过二叉树的遍历理解递归

通过前序遍历加深对于递归的理解
  • sinat_27088253
  • sinat_27088253
  • 2016年07月19日 11:37
  • 1685

二叉树的建立、三种(递归、非递归)遍历方法

二叉树定义: 1.有且仅有一个特定的称之为根root的结点 2.当n>1时,除根结点之外的其余结点分为两个互不相交的子集。他们称为二叉树的左子树和右子树。 二叉树的一种建立方法: 若对有n个结...
  • jiang111_111shan
  • jiang111_111shan
  • 2015年06月08日 21:42
  • 944

二叉树的递归与非递归实现

二叉树的递归实现: #include using namespace std; #define LEN sizeof(struct Tree) struct Tree { int key; ...
  • z84616995z
  • z84616995z
  • 2014年03月09日 18:33
  • 1452

二叉树递归调用过程

二叉树是最常见最重要的数据结构之一,它的定义如下:   二叉树(binary tree)是有限多个节点的集合,这个结合或者是空集,或者由一个根节点和两颗互不相交的、分别称为左子树和右子树的二叉树...
  • I_love_blog
  • I_love_blog
  • 2017年03月27日 14:48
  • 1231

递归和非递归方法建立二叉树

研三了,天天忙着找工作,细数来看过的算法也算多了,但是都是在不同的电脑上看的,而且都没有记录,因此开通此博客用于记录平时看书的笔记或者笔试题目,算法等的解释,写于此便于自己日后回顾和让其他在招工的同学...
  • hailong0715
  • hailong0715
  • 2013年08月30日 16:45
  • 2269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:递归生成二叉树 day2
举报原因:
原因补充:

(最多只允许输入30个字)