알고리즘(C언어)45 (12)[Chapter6]이진 탐색 트리_탐색,삽입메소드(이론 + 코드) ##이진 탐색 트리_Search()##이진 탐색 트리_Insert() (비재귀)##이진 탐색 트리_Insert() (재귀) :★삽입 재귀버전은 재귀인데도, 종료조건이 따로 없다 (굳이 있다면, 저 빈트리일때가 종료조건임)논리 순서 : 1_ 빈트리라면 : "if(*root==NULL)",2_ data가 들어갈 자리를 탐색 하면서, 재귀 호출 :##이진 탐색 트리_오름차순 출력 => 중위 순회##전체 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899.. 2024. 7. 23. (11)[Chapter6]이진 탐색(이론 + 코드) ## 이론 노트 :##핵심 내용 요약 :1_ 구현 코드에서 반띵 기준A[mid] > 탐색값 => 왼쪽으로 반띵 => end = mid -1 대입A[mid] 오른쪽으로 반띵 => start = mid +1 대입A[mid] == 탐색값 => 찾았다.=> return mid(인덱스)2_ 종료 시점까지 도달하는 경우Case1_▲ 우연히 끝까지 도달한 값 == 탐색 값 => mid 인덱스 반환Case2_ 탐색값이 배열안에 없는 경우 => NULL이 반환3_ 이진 탐색 기능 : 최악의 경우 (2_상황) ※탐색횟수 = [log(2)(탐색 데이터의 수)]ex_ N = 10 , 최악의 경우의 탐색 횟수 [log(2)(10)] = [3.xxx] = 3번4_ 이진 탐색 함수 라이브러리 사용법(구조체 배열일 경우) :ⓐ... 2024. 7. 21. (10)[Chapter6]순차탐색_계수법(이론+코드)(작성중) 하다가 힘들어서 정리하는건 미룰래 기록만 하자##이론 :##코드 :123456789101112131415161718192021222324252627282930313233343536373839404142// 계수법(Count Heuristic)을 사용한 순차 검색 함수Node* FCM(Node** head, int data) { Node* C = *head; Node* M = NULL; Node* prev = NULL; // 노드를 찾는 과정 while (C != NULL) { if (C->data == data) { // 데이터를 찾았다면 C->cnt++; // 탐색 횟수 증가 M = C; // 찾은 노드를 M에 저장 .. 2024. 7. 19. (10)[Chapter6]순차탐색_전진이동법,전위법(코드편) (작성중) ##연결리스트 구조체,삽입,출력 코드 : ##전진이동법 메소드 코드:##전위법 메소드 코드 :##전체 코드 :1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481.. 2024. 7. 19. 이전 1 ··· 6 7 8 9 10 11 12 다음