logo

삽입

삽입 기능은 이진 검색 트리의 적절한 위치에 새 요소를 추가하는 데 사용됩니다. 삽입 함수는 노드가 각 값에서 이진 검색 트리의 속성을 위반하도록 설계되어야 합니다.

자바 대 C++
  1. 트리에 메모리를 할당합니다.
  2. 데이터 부분을 값으로 설정하고 트리의 왼쪽 및 오른쪽 포인터를 NULL로 지정합니다.
  3. 삽입할 항목이 트리의 첫 번째 요소가 되면 이 노드의 왼쪽과 오른쪽은 NULL을 가리킵니다.
  4. 그렇지 않으면 항목이 트리의 루트 요소보다 작은지 확인하고, 이것이 사실이면 루트 왼쪽에서 이 작업을 재귀적으로 수행합니다.
  5. 이것이 거짓이면 루트의 오른쪽 하위 트리를 사용하여 이 작업을 재귀적으로 수행합니다.

삽입(TREE, ITEM)

    1 단계:IF 트리 = NULL
    TREE에 메모리 할당
    트리 설정 -> 데이터 = 항목
    트리 설정 -> 왼쪽 = 트리 -> 오른쪽 = NULL
    또 다른
    IF 항목 데이터
    삽입(TREE -> LEFT, ITEM)
    또 다른
    삽입(트리 -> 오른쪽, 항목)
    [IF 끝]
    [IF 끝]2 단계:끝

이진 검색 트리에 삽입

C 기능

 #include #include void insert(int); struct node { int data; struct node *left; struct node *right; }; struct node *root; void main () { int choice,item; do { printf('
Enter the item which you want to insert?
'); scanf('%d',&item); insert(item); printf('
Press 0 to insert more ?
'); scanf('%d',&choice); }while(choice == 0); } void insert(int item) { struct node *ptr, *parentptr , *nodeptr; ptr = (struct node *) malloc(sizeof (struct node)); if(ptr == NULL) { printf('can't insert'); } else { ptr -> data = item; ptr -> left = NULL; ptr -> right = NULL; if(root == NULL) { root = ptr; root -> left = NULL; root -> right = NULL; } else { parentptr = NULL; nodeptr = root; while(nodeptr != NULL) { parentptr = nodeptr; if(item data) { nodeptr = nodeptr -> left; } else { nodeptr = nodeptr -> right; } } if(item data) { parentptr -> left = ptr; } else { parentptr -> right = ptr; } } printf('Node Inserted'); } } 

산출

 Enter the item which you want to insert? 12 Node Inserted Press 0 to insert more ? 0 Enter the item which you want to insert? 23 Node Inserted Press 0 to insert more ? 1