Добавить узел в бинарное дерево

201
01 апреля 2017, 01:14

Мне нужно добавить узел в бинарное дерево, чтобы вышло так: "Binary Tree is a kind of orderly table". Условие задачи:

"Сформировать дерево синтаксического разбора предложений "Binary Tree is a kind of table". Добавить узел, чтобы получить предложение "Binary Tree is a kind of orderly table".

Вот мой код:

#include "stdafx.h"
#include <iostream> 
#include<conio.h> 
#include<stdio.h> 
#include<string.h> 
using namespace std;
struct node
{
    int info;
    char A[256];
    node *l, *r;
};
node *root = NULL;
void push(int a, node **t)
{
    if ((*t) == NULL) 
    {
        (*t) = new node;  
        (*t)->info = a;  
        (*t)->l = (*t)->r = NULL;  
        return;
    }
    if (a>(*t)->info) push(a, &(*t)->r); 
    else push(a, &(*t)->l); 
}
void pushchar(char b, node **t)
{
    if ((*t) == NULL)
    {
        (*t) = new node;
        (*t)->A[256] = b;
        (*t)->l = (*t)->r = NULL;
        return;
    }
    pushchar(b, &(*t)->l);
}

void print(node *t)
{
    if (t)
    {
        print(t->l);
        if (t->info) cout<< t->info<<' ';
        print(t->r);
    }
}
void printchar(node *t)
{
    if (t)
    {
        print(t->l);
        if (t->A) cout<<t->A<<' ';
        printchar(t->r);
    }
}
int main()
{
    int B[] = { 1,2,3,4,5,6,7 };    
    char *A[256] = { "Binary", "Three", "is", "a", "kind", "of", "table" };
    cout<<"Our digits:\n";
    for (int i = 0; i<5; ++i)
    {
        cout<<B[i]; 
        push(B[i], &root);
    }
    cout<<" Our tree:\n";
    print(root);
    for (int i = 0; i <= 5; i++)
    {
        pushchar(*A[i], &root);
    }
    printchar(root);
    cout << '\n';
    cout << "tree 2\n";
    print(root);
    getch();
}
READ ALSO
Как посмотреть код через дизассемблер ildasm? Выдает ошибку

Как посмотреть код через дизассемблер ildasm? Выдает ошибку

Visual Studio 2015Хочу посмотреть код через дизассемблер

556
Побитовые операции для области памяти

Побитовые операции для области памяти

Как сделать аналогичное для произвольной области памяти (например для uint64_t[n])? Есть ли какие-то особые команды ОС или ассемблера для этого?

253
Что такое &gt;&gt; в c++

Что такое >> в c++

Здравствуйте, не могу это загуглитьЕсть код программы

269
Какая строка кода приводит к ошибке компиляции или времени исполнения?

Какая строка кода приводит к ошибке компиляции или времени исполнения?

Класс ExtendedMuxer содержит буфер (член m_buffer) нужный для работы с аудиоданнымиРазмер буфера устанавливается один раз в конструкторе класса и там...

252