Тема: Відобразити за допомогою бінарного дерева речення
Доброго дня, суть програми в тому щоб відобразити за допомогою бінарного дерева речення: “Білий сніг покриває чорну землю”. Ключі підібрати самостійно. Вивести результат. Видалити вузол із словом “чорну”.
Я думав зробити програму використовуючи п'ять ключів, відповідно на кожне слово а потім видалити один з них, проблема в тому, що я не знаю як присвоїти ключеві значення слова, адже це по суті стрічка?
І ще питання, як правильно прикріплювати код на даному форумі, прикріпити файл чи написати сам код в описі теми?
#include <iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
using namespace std;
using std::cin;
using std::endl;
using std::cout;
struct node
{
char info;
node *l, *r;
};
node *root=NULL;
char s0[]={"white"};
char s1[]={"snow"};
char s2[]={"cover"};
char s3[]={"black"};
char s4[]={"ground"};
/*//Ф-я запису елемента в дерево*/
void push(char 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 print (node *t)
{
if (t)
{
print(t->l);
if (t->info) cout<< t->info<<' ';
print(t->r);
}
/*
if (t==NULL) return; //якщо пусте Дерево то немає чого відображати
else //інакше
print(root->l);
if(root->info)
cout<<root->info;
print(root->r);
//за допомогою рекурсії ідемо в праве піддерево
*/
}
void Delete (node **d, int k)
{
node *q;
if (*d == NULL) cout<< "No such key\n";
else
if (k<(**d).info) Delete(&((**d).l), k);
else
if (k>(**d).info) Delete(&((**d).r), k);
else {
q = *d;
if ((*q).r == NULL) { *d = (*q).l; delete q; } //якщо правий нуль видалити лівий
else
if ((*q).l == NULL) { *d = (*q).r; delete q; } //і навпаки
}
}
int main ()
{
int A[]={53,50,51,52,49};
cout<<"Our digits:\n";
for (int i=0;i<5;++i)
{
cout<<A[i]; //виводимомо елемент за елементом
push(A[i],&root); //кожний елемент кладемо в дерево
}
cout<<" Our tree:\n";
print(root);
Delete(&root,52);
cout << '\n';
cout << "tree 2\n";
print(root);
getch();
}