Дарахти дуӣ


Дарахти дуӣ сохтори бунёдии маълумот мебошад, ки дар он мо метавонем ба осонӣ маълумотро нигоҳ дорем ва ҷустуҷӯ кунем. Он аз гиреҳҳо иборат аст, ки дар он ҳар як гиреҳ нишоннамои чап, нишоннамои рост ва маълумотро дар бар мегирад.

Нишондиҳандаи решавӣ ба гиреҳи болои дарахт ва ишоракунандагони чапу рост ба зердарахтҳои хурдтари ҳарду тараф ишора мекунанд.

Таъсиси дарахти дуӣ

Алгоритм

1. Аввал гиреҳи нав эҷод кунед
Гиреҳеро муайян кунед, ки дорои баъзе маълумотҳо, истинодҳо ба гиреҳҳои кӯдаки чап ва рости он бошад.
2. Аввалин қиматеро, ки шумо ҳамчун реша ворид мекунед, созед.
3. Агар шумо хоҳед, ки арзиши навбатиро ба чапи реша гузоред, ҳамчун root-> left ё агар шумо мехоҳед ба рост дохил ҳамчун root-> right гузоред
4. Қадами 3 -ро такрор кунед, то гиреҳро ба заҳролудии дурусти дарахт гузоред. Масалан, барои ворид кардани гиреҳ ба чапи чапи реша, ҳамчун root-> left-> left дохил кунед.

мисол

Барномаи C ++

#include <stdlib.h>
#include <stdio.h>

struct node 
{
	char data;
	struct node *left;
	struct node *right;
};
struct node* newNode(char data)
{
// Allocate memory for new node 
struct node* node = (struct node*)malloc(sizeof(struct node));

// Assign data to this node
node->data = data;

// Initialize left and right children as NULL
node->left = NULL;
node->right = NULL;
return(node);
}
void prinTree(struct node* node)	//Using PreOrder Traversal for Printing a Tree 
{
	if(node == NULL)
		return;
	printf("%c\n",node->data );
	prinTree(node->left);
	prinTree(node->right);

}



int main()
{				//Creating a Tree with nodes A, B, C, D, E, F
struct node *root = newNode('A'); // Creating a root with left and right pointers Null


root->left	 = newNode('B');    // Creating a left node to A 
root->right	 = newNode('C');	// Creating a right node to A


root->left->left = newNode('D');    //Creating a left left node to A
root->left->right = newNode('E');	//Creating a left right node to A
root->right->left = newNode('F');	//Creating a right left node to A
prinTree(root);  //It will print the Tree
return 0;
}