【数据结构】构造二叉树的三种方法

题目:

binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child.

1、Three Constructor:
creat a tree by copy.
creat a tree by a array.(using BFS)
creat a tree by preorder and inorder.

2、Methods:
clear: clear the tree.
copyTree: input old tree root and new tree root, copy it and get a new tree.

3、Static Methods:
three way to search tree.

Hint:

‘#’是表示该节点不存在,在下层判断的时候,可忽略该不存在的节点,主要在根据数组构造树中。

1 2 3 # 4 5 6 7 # # 8

得到的是

                1

          /            \

      2                  3

         \              /  \

           4         5      6

         /             \

        7              8

即把二叉树作为一个方法封装起来。
附上头文件:

//
//  BinaryTree.hpp
//  C++
//
//  Created by my TA on 16/5/4.
//  Copyright © 2016年 lee. All rights reserved.
//

#ifndef BinaryTree_hpp
#define BinaryTree_hpp

#include <iostream>
#include <vector>
#include <queue>
#include <stack>

#define EMPTY_ELE '#'

class BinaryTree {
public:
    struct Node {
        char val;
        Node* left;
        Node* right;
        Node(char v, Node* l = NULL, Node* r = NULL):
        val(v), left(l), right(r) {
        }
    };
    BinaryTree(const BinaryTree&);
    BinaryTree(std::vector<char>&);
    // created by preorder and inorder
    BinaryTree(const std::vector<char>& preOrder,
               const std::vector<
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值