**
使用二叉树获取字符串的最大子串
**
在获取一个随机字符串的最大子串问题上,我想到可以用二叉树来解决这个问题,因为二叉树在插入元素时按左小右大来,如果将字符串每个字符插入二叉树,那么所有右子树的根节点组成的字符串就是最大的子串。以下使用代码验证这个思路。如果有错误的地方请多多指教。谢谢。
首先,比如有个字符串是 ETCFGABD ,那么重后往前插入二叉树,以字符串最后一个字符为树根。这样就得到一个二叉树如下图所示:
这个二叉树的所有右子树的根节点组成的子串是 TGD 就是 最大子串。
以下是代码实现:
//
// main.cpp
// maxSubStr
//
// Created by Forest on 20/6/17.
// Copyright © 2020年 lin. All rights reserved.
//
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
template<typename T>
class binaryTree {
public:
struct Node {
T data;
//左子树指针
Node* left;
//右子树指针
Node* right;