Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Функция за търсене в двоично дърво

Featured Replies

Здравейте,

създал съм програма, която проверява дали съдържанието на едно двоично дърво (TR1) се съдържа в друго двоично дърво (TR2). Единствената особеност е, че съм вкарал стойностите на дърветата в два масива и с тях правя проверката. Как може чрез обхождане на елементите на дърветата да се направи тази проверка, без употреба на масиви? Ето го текущия вид на програмата ми.

#include <iostream>using namespace std;struct elem{    int key;    elem *left, *right;}*root1=NULL, *root2=NULL;void add(int n, elem *&t);void check();int i=0, y=0;int *a1= new int[i];int *a2= new int[y];int main(){    int c;    cout<<endl<<"Vavedete simvoli za dobavqne v TR1: "<<endl;    do    {        cin>>c;        if(c!=0)        add(c,root1);    }while(c!=0);    cout<<endl<<"Vavedete simvoli za dobavqne v TR2: "<<endl;    do	    {           cin>>c;           if(c!=0)			  add(c,root2);   	 } while(c!=0);    check();}void add(int n, elem *&t){    if(t==NULL)    {        t=new elem;        t->key=n;        t->left=NULL;        t->right=NULL;    }    else        if(t->key<n)            add(n,t->right);        else add(n,t->left);}void inorder1(elem *t){    if(t)    {        inorder1(t->left);        a1[i++]=t->key;        inorder1(t->right);    }}void inorder2(elem *t){    if(t)    {        inorder2(t->left);        a2[y++]=t->key;        inorder2(t->right);    }}void check(){    inorder1(root1);    inorder2(root2);    int flag=0;    for(int x=0; x<i; x++)    {            for(int q=0; q<y; q++)            {                if(a1[x]!=a2[q])                {				    flag=0;			    }                else			    {				    flag=1;				    break;			    }            }            if (flag==0)			    break;    }    if(flag==1)	    cout<<endl<<"TR1 se sudurja v TR2";    else   	 cout<<endl<<"TR1 ne se sudurja v TR2";}

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.