본문 바로가기

알고리즘(C언어)/알고리즘 및 실습 강의19

[부록]실습7주차_BST검색,삽입,삭제_[문제1]_2차시도 @100점 안나오길래, 다시 작성 후, 다시 공부함 ㅅㅂ #구조체 :#트리에 노드 메모리 할당 메소드 :#검색 메소드 :매개변수가 일중 포인터일 떄, 반환값이 노드포인터이므로 => "return Search(p->left||p->right)" 로 재귀 호출한다.#삽입 메소드 :삽입 메소드의 매개인자는 이중 포인터이므로,1_ 반환형 : void2_ 재귀 호출시 , 매개인자를 &연산자로 호출#삭제 메소드 :삭제메소드도 매개인자 마찬가지로 이중포인터이고,삭제대상이 0차, 1차, 2차일 때,1_ 0차일 때, => free(삭제대상) => 삭제대상에 NULL 대입2_ 1차일 때, => NULL이 아닌 자손 노드에 tmp 임시 보관 => free(삭제대상) => (*삭제대상)에 tmp 대입3_★ 2차일 때, => .. 2024. 9. 25.
(13)부록_BST트리(이진탐색트리), AVL트리(균형탐색트리) 코드 구별 총정리//시발 더이상 못함 1_ BST의 삽입 메소드 //InsertBST()1234567891011121314151617181920212223242526272829//BST 삽입 메소드void InsertBST(BNode** p, int data) {    if ((*p) == NULL) {        (*p) = (BNode*)malloc(sizeof(BNode));        (*p)->data = data;        (*p)->Left = NULL;        (*p)->Right = NULL;         return;    }     if ((*p)->data > data)     {        InsertBST(&((*p)->Left), data);     }    else if ((*p)->data  d.. 2024. 9. 16.
(12)실습7주차_AVL트리_FindMin(),DeleteAVL()_[문제3] #문제 PDF파일은 아래에 링크 :https://kojammin.tistory.com/107 (9)실습7주차_이진탐색트리_전위순회,삽입,삭제_이론+코드[문제1]#문제 PDF 파일 :[문제1] :#알아야 할 개념 (요약) :이진 트리 전위(중위 후위에서도 마찬가지) 순회 메소드 구현에서 if구현 실수 조심이진 탐색 트리의 삽입 메소드와 삭제 메소드는 이중포인터를kojammin.tistory.com #문제 풀기전 알아야 할 개념 :DeleteAVL() 논리 순서 :종료조건 : 빈자리 도달했을 시 => 삭제할 data가 트리에 존재X => 이떄는 종료하는 게 맞다(InsertAVL과 차이)탐색 : 재귀삭제할 대상노드를 찾았을 시 => 세가지 Case : 삭제 대상 | 0차 | 1차 | 2차Case 1 ) 삭제.. 2024. 9. 16.
(11)실습7주차_AVL트리_Rebalance메소드,삽입메소드[문제2]_2 #문제 PDF파일은 아래에 링크 :https://kojammin.tistory.com/107 (9)실습7주차_이진탐색트리_전위순회,삽입,삭제_이론+코드[문제1]#문제 PDF 파일 :[문제1] :#알아야 할 개념 (요약) :이진 트리 전위(중위 후위에서도 마찬가지) 순회 메소드 구현에서 if구현 실수 조심이진 탐색 트리의 삽입 메소드와 삭제 메소드는 이중포인터를kojammin.tistory.com#알아야 할 개념 :Rebalance메소드 :★InsertAVL메소드 :InsertAVL() 코드 논리 순서 (InsertBST()와 비교하기)InsertAVL() 의 중요한 부분빈자리 도달할때 : 메모리 할당, 함수 종료 (다시 루트노드로 재균형조정해야 하기 때문)탐색부분에  재귀InsertAVL + Rebala.. 2024. 9. 16.