बाइनरी रूख


बाइनरी ट्री आधारभूत डेटा संरचना हो, जहाँ हामी सजीलै डेटा भण्डारण गर्न र पुनःप्राप्ति गर्न सक्छौं। यो नोडहरू मिलेर बनेको छ, जहाँ प्रत्येक नोडले बायाँ सूचक, दायाँ सूचक र डाटा समावेश गर्दछ।

रुट पोइन्टरले रूखको शीर्ष सबैभन्दा नोडमा र बायाँ र दायाँ पोइन्टर्सले दुबै छेउमा साना subtree मा औंल्याउँछ।

बाइनरी रूखको सिर्जना

अल्गोरिदम

१. पहिले नयाँ नोड सिर्जना गर्नुहोस्
केही डाटा भएको नोड परिभाषित गर्नुहोस्, यसको बायाँ र दायाँ बच्चा नोडहरूको सन्दर्भ।
२. पहिलो मान बनाउनुहोस् जुन तपाईं मूलको रूपमा घुसाउनुहोस्।
You. यदि तपाइँ रूटको बायाँपट्टि अर्को मान सम्मिलित गर्न चाहानुहुन्छ भने, मूल-> बायाँको रूपमा घुसाउनुहोस्, वा यदि तपाइँ दायाँ सम्मिलित गर्न चाहानुहुन्छ भने मूल-> दायाँको रूपमा घुसाउनुहोस्।
Step. रूखमा दायाँ पोजिसनमा नोड राख्नका लागि चरण Rep दोहोर्याउनुहोस्। उदाहरण को लागी, रूटको बायाँ बाँया नोड सम्मिलित गर्न, root-> बायाँ-> बायाँ घुसाउनुहोस्।

उदाहरणका

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;
}