자료구조 및 알고리즘/자료구조C 39

11-03 체이닝(Chaining)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.체이닝(Chaining) 1)개요 및 정의 -해시 테이블의 충돌을 해결하는 방법은 해시 테이블의 주소 바깥에 새로운 공간을 할당하여  해결하는 개방 해싱(Open Hashing),처음에 주어진 해시 테이블의 공간 안에서 해결하는 폐쇄 해싱(Closed Hashing)이 있다. -체이닝은 데이터를 해당 주소에 있는 링크드 리스트에 삽입하여 문제를 해결하는 개방 해싱 방식의 기법. 2.체이닝의 중요연산-체이닝은 데이터가 삽입될 때  앞으로 발생할 충돌을, 삭제와 탐색은 이미 발생한 충돌을  고려해서 설계되어야 한다.  1)탐색 연산 과정  2)삽입 연산3.체이닝 해시테이블 구현 1..

10-02 힙 트리(Heap Tree) 구현

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.힙 트리(Heap Tree) 구현 1)데이터 노드 구현 2)원형 함수 선언 3)함수 구현 -힙 생성 및 삭제 연산-힙 삽입연산-힙 최솟값 삭제 연산 -부모노드 및 왼쪽자식 노드 반환연산-노드 교환 연산-힙 출력연산-테스트

10-01 힙 트리(Heap Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.힙 트리(Heap Tree) 1)정의 -힙 순서 속성(Heap Order Property)을 만족하는 완전 이진 트리 -힙 순서 속성이란 트리 내의 모든 노드가 부모 노드보다 커야 하는 규칙. -힙 순서 속성으로 항상 트리 내 최솟값은 뿌리 노드이다.2.힙 트리의 주요 연산 1)삽입연산 -삽입연산 과정 2)힙의 최솟값 삭제 연산 -삭제 연산 과정 3.배열을 이용한 힙의 구현1)개요 -배열은 완전 이진트리를 구현하기 적합한 자료구조를 가지고 있다. -배열간의 각 요소가 노드에 해당되고 요소의 순번에 따라 노드간의 관계를 알 수 있다.2)구현 방법

09-05레드 블랙 트리(Red Black Tree) 구현

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.레드 블랙 트리(Red Black Tree) 구현 1)데이터 노드 구현 2)함수 원형 선언 3)함수 구현 -노드 생성 및 메모리 삭제 연산 -트리 삭제 연산-트리 탐색 연산-트리 내 최솟값 탐색 연산-트리 삽입 연산-트리 노드 삽입 후 재구성 연산-트리 노드 삭제-트리 노드 제거 후 재구성 연산-트리 출력 연산-트리 우회전 연산-트리 좌회전 연산-예제 프로그램

09-04레드 블랙 트리(Red Black Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.  1.레드 블랙 트리(Red Black Tree) 1)개요 -이진 트리는 동적 크기가 증가하는 데이터도 잘 처리하며 탐색 속도 좋다.-하지만 위와 같이 한쪽으로 편중된 상태의 트리가 만들어 질 경우 탐색 효율이 극단적으로 떨어진다. -위의 문제를 해결한 방식이 레드 블랙 트리가 있다.-레드 블랙 트리(Red Black Tree)란 레드 블랙 두가지 요소로 된   자가 균형 이진 트리(트리에서 노드의 삽입과 삭제 같은 연산이 일어날 때 자동으로 균형 트리)이다. 2.레드 블랙 트리의 구현 규칙 1)구현 규칙  2)NIL 노드 -센티널(Sentinal) 노드라고 하며 아무 데이터도 ..

09-03이진 탐색 트리(Binary Search Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.이진 탐색 트리(Binary Search Tree) 1)정의 -이진 트리는 자식 노드가 최대 2개인 노드로만 이루어진 트리 -이진 탐색 트리 는 이진 트리 기반의 탐색을 위한 자료구조.2)이진 탐색 트리의 원칙 -왼쪽 자식 노드는 부모 노드보다 작고 오른쪽 자식은 크다.3)이진 탐색 트리 구현 1)데이터 노드  2)함수 원형 선언 3)함수 구현 -노드 생성 및 메모리 삭제연산 -트리 삭제연산-노드 탐색연산 -노드 최소값 탐색연산 -*노드 삽입연산 -노드 삭제연산-트리 출력 및 탐색 결과 출력 연산-테스트

09-02 이진 탐색(Binary Search)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.이진 탐색(Binary Search) 1)정의 -정렬된 데이터에서 특정한 값을 찾아내는 알고리즘. -탐색 범위를 반으로 나누어 찾는 방식으로 값을 포함하는 범위를 줄여가는 방식.  -이진 탐색은 사용될 때마다 범위 대상의 크기가 절반으로 줄어든다. 2)작동 과정        -데이터 중앙에 있는 요소를 고르고 목표값과 비교.     -목표 값이 중앙 요소 값보다 작다면 중앙을 기준으로 데이터 왼 편에 대해, 크다면 오른 편에 대해 이진 탐색을 수행 -원하는 값을 찾을 때까지 반복   2.이진탐색 트리 성능 측정 1)최대 반복횟수 수식   -데이터 크기를 n, 탐색 반복 횟수를 ..

09-01 순차 탐색(Sequential Search)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.탐색 알고리즘 1)정의  -방대한 데이터에서 목적에 맞는 데이터를 찾아내기 위한 알고리즘.2.순차 탐색(Sequential Search) 1)정의  -자료구조 내 처음부터 끝까지 모든 데이터를 검사하여 원하는 데이터를 찾는 알고리즘  -데이터의 크기가 작거나 높은 성능이 필요치 않는 상황에서 활용된다.2)리스트 순차탐색 구현 코드3.자기 구성 순차 탐색(Self-Organizing Sequential Search)) 1)정의  -자주 사용되는 데이터를 앞 쪽에 배치함으로써 검색 효율을 높이는 방법을 적용한  순차탐색 알고리즘. -앞쪽에 배치하는 방식에 따라 크게 세가지로 나뉜..

08-03 퀵 정렬(Quick Sort)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.정렬(Sorting) 1)정의 -기준에 따라 데이터를 순서대로 체계적으로 정리하는 알고리즘. -정렬의 목적은 데이터의 탐색을 용이하기 위한 목적이 있다.  2.퀵 정렬(Quick Sort) 1)정의 -분할 정복(Divide and Conquer) 알고리즘을 기반으로한 정렬 알고리즘. -분할 정복이란 크고 방대한 문제를 풀기 용이하게  조금씩 나누고 풀이한 다음 다시 합쳐 해결하는 방법. -퀵 정렬은 데이터를 기준 요소를 정하고 전체 데이터를 분할하고 반복하는 방식이다. 2)동작과정:오름차순 정렬516483792  -위와 같은 정렬되지 않는 자료구조가 있다.  자료구조에서 기준이..