이진 트리

시스템 설계 면접 질문 너무 개방적이어서 올바른 준비 방법을 알기가 너무 어렵습니다. 이제 구매 후 Amazon, Microsoft 및 Adobe의 디자인 라운드를 해독할 수 있습니다. 이 책은. 매일 수정 하나 디자인 질문 그리고 나는 당신이 디자인 라운드를 깨뜨릴 수 있다고 약속합니다.

바이너리 트리는 데이터를 쉽게 저장하고 검색 할 수있는 기본적인 데이터 구조입니다. 각 노드는 왼쪽 포인터, 오른쪽 포인터 및 데이터를 포함하는 노드로 구성됩니다.

루트 포인터는 트리의 최상위 노드를 가리키고 왼쪽 및 오른쪽 포인터는 양쪽에있는 더 작은 하위 트리를 가리 킵니다.

이진 트리 생성

암호알고리즘

1. 먼저 새 노드를 만듭니다.
데이터가있는 노드, 왼쪽 및 오른쪽 자식 노드에 대한 참조를 정의합니다.
2. 삽입 한 첫 번째 값을 루트로 만드십시오.
3. 루트의 왼쪽에 다음 값을 삽입하려면 루트-> 왼쪽으로 삽입하고 오른쪽에 삽입하려면 루트-> 오른쪽으로 삽입합니다.
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;
}

균열 시스템 설계 인터뷰
Translate »