[C ++] entrenamiento de verano henuACM Día9 Árbol binario_Huffman Tree_Dictionary Tree

Árbol binario

Primero conozca la clasificación del árbol binario

Árbol binario

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
En cuanto a por qué el orden medio es así, primero atraviesa el árbol con D como nodo. G no tiene hijos, regresa a D y luego ordena a la derecha. H tiene hijos y es orden izquierdo, así que escribe I primero, luego H, y luego regresa D , Y luego atraviesa el lado derecho de A, a C encuentra que C tiene un hijo, primero atraviesa el lado izquierdo de C, encuentra que E tiene un hijo, realiza el orden medio en E, primero E luego J, y luego regresa a CF.

H título Trie tree

Vaya directamente al código ... porque realmente no sé cómo escribir el código para esta lección. . .

#include<iostream>
#include<string.h>
using namespace std;

struct trie_node
{
    
    
    int cnt;
    bool flag;
    trie_node *child[30];
};

trie_node* creat_node()
{
    
    
    trie_node *node = new trie_node();
    node->cnt = 0;
    node->flag = false;
    memset(node->child,NULL,sizeof node->child);
}

void insert_node(trie_node *root,string key)
{
    
    
    trie_node *node = root;
    for(int i=0;i<key.size();i++)
    {
    
    
        if(node->child[key[i]-'a'] == NULL)
            node->child[key[i]-'a'] = creat_node();
        node = node->child[key[i]-'a'];
        node->cnt++;
    }
}

int search_trie(trie_node *root,string key)
{
    
    
    trie_node *node = root;
    for(int i=0;i<key.size();i++){
    
    
        if(node->child[key[i]-'a'] == NULL){
    
    
            return 0;
        }
        node = node->child[key[i]-'a'];
    }
return node->cnt;}

int main()
{
    
    
    int n;
    cin>>n;
    string s1,s2;
    trie_node *root = new trie_node();
    for(int i=0;i<n;i++){
    
    
        cin>>s1;
        insert_node(root,s1);
    }
    int m;
    cin>>m;
    for(int i=0;i<m;i++){
    
    
        cin>>s2;
        cout<<search_trie(root,s2)<<endl;
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_44899247/article/details/97489847
Recomendado
Clasificación