/ / Uložte všetky ukazovatele uzlov do súboru ukazovateľov pre strom binárneho vyhľadávania - ukazovatele, dátové štruktúry, strom, binárny strom, binárny vyhľadávací strom

Uložte všetky ukazovatele uzlov do poľa ukazovateľov pre binárny strom vyhľadávania - ukazovatele, dátové štruktúry, stromy, binárne stromy, binárne vyhľadávacie stromy

Nedávno som sa snažil binárne manipulovaťprehľadajte strom a uviazli tu. Chcem mať vo vnútri pole (rad ukazovateľov), v ktorom chcem ukladať ukazovatele každého uzla binárneho vyhľadávacieho stromu v poradí. POTREBUJEME HODNOTU KAŽDÉHO NODE Potrebujem ukazovatele, aby som mohol mať prístup k ich hodnote, ľavému podstromu a pravému podstromu.

struct node{
int key;
struct node *left, *right;
};

node **arr;
int x=0;

void inorder(struct node *root){
if (root != NULL){
inorder(root->left);

//cout<<"X : "<<x<<endl;
arr[x] = root;
x++;
printf("%d n", root->key);
inorder(root->right);
}
}

Prosím pomôžte. Vďaka.

odpovede:

0 pre odpoveď č. 1

Môžete to urobiť, ale ak je to triedené pole uzlovukazovatele vyhovujú vašim potrebám, potom nepotrebujete binárny vyhľadávací strom: môžete vykonávať binárne vyhľadávanie v poli. Táto dátová štruktúra má rovnakú rýchlosť prístupu ako strom (môže byť dokonca o niečo rýchlejšia, pretože údaje sú pevne zabalené v pamäti) a je veľmi efektívny z hľadiska pamäte. Vkladanie nových údajov je však nákladné: o (n). Toto riešenie nie je vhodné, ak sa očakáva veľa vkladaní. V tomto prípade však zachovaním tohto zoradeného poľa stratíte všetky výhody stromovej štruktúry.