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

08-02 삽입 정렬(Insertion Sort)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.정렬(Sorting) 1)정의 -기준에 따라 데이터를 순서대로 체계적으로 정리하는 알고리즘. -정렬의 목적은 데이터의 탐색을 용이하기 위한 목적이 있다.  2.삽입 정렬(Insertion Sort) 1)정의 -자료구조를 순차적으로 순회하면서 순서에 어긋나는 요소를 찾고, 그 요소를 올바른 위치에 삽입하는 정렬 알고리즘.  2)오름차순 정렬-(a)에서 정렬범위 3과 7을 비교하여 오름차순 정렬.-(b)는 2를 정렬범위와 비교하여 올바른 위치에 삽입되어 2가 맨 앞으로 이동.-(c)~(f)까지 동일하게 반복 수행한다. 3.삽입 정렬 예제   -삽입 정렬 함수 -테스트

08-01 버블 정렬(Sorting)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.정렬(Sorting) 1)정의 -기준에 따라 데이터를 순서대로 체계적으로 정리하는 알고리즘. -정렬의 목적은 데이터의 탐색을 용이하기 위한 목적이 있다. 2.버블 정렬(Bubble Sorting) 1)정의  -자료구조를 순회하면서 서로 인접한 두 가지 데이터를 검사하여 정렬하는 알고리즘. 2)오름차순 정렬   -위의 그림의 자료구조에서 왼쪽 데이터부터 시작하는 오름차순으로 정렬하려고 할 때   5과 1는 서로 인접한 데이터이다.  -5과 1을 검사했을 때 5가 1보다 크므로 오름차순을 기준으로 5는 오른쪽으로 이동하게 된다.  -이와 같은 방법으로 두 개씩 데이터를 검사하여 ..

07-06 분리 집합(Disjoint Set)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.분리집합(Disjoint Set) 1)정의 -서로 공통된 원소를 갖지 않는(교집합이 없는 상태) 복수의 집합. -분리 집합은 합집합만이 존재할 수 있다. -분리 집합은 집합 간의 교집합이 존재하기 않기 때문에 소속관계가 분명해야하는 데이터를 다룰 때 유용하다.2.분리집합 표현  1)개요 -트리와 이진트리는 부모가 자식을 가리키는 링크 또는 주소를 가지고 있고 분리집합은 반대로 자식이 부모를 가리킨다. -뿌리 노드는 집합 그 자체이고, 뿌리 노드는 자신을 포함한 트리 내의 모든 노드는 그   집합에 소속된다. -분리 집합 기본연산에는 두 집합을 합치는 합집합(Union) 연산과..

07-05 수식 트리(Expression Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.수식 트리(Expression Tree) 1)정의 -수식을 표현하는 이진 트리. 2)수식 트리 규칙 -피연산자는 잎 노드이다. -연산자는 뿌리노드 또는 가지 노드이다.  2.수식 트리 구축 방법 1)개요 -수식트리 사용에 있어 중위표기식에서 후위표기식으로 변환하도록 알고리즘 구축 (스택 부분 참조,구현 생략) -후위 표기식에서 연산자 및 피연산자를 트리 노드로 구현하도록 알고리즘 구축.↓↓↓↓↓↓ ↓↓↓↓↓↓ 3.수식 트리(Expression Tree) 1)데이터 노드 구현   2)함수 원형 선언 3)함수 구현 -노드 생성,삭제,트리 삭제, 전위,중위,후위 순회 연산은 기존 이..

07-03 이진 트리(Binary Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.이진 트리(Binary Tree) 1)정의   -트리의 노드가 두 개의 자식까지만 가질 수 있는 트리.  -이진 트리 노드의 자식노드는 0,1,2 중에 하나다. 2)종류 및 용어  -포화 이진 트리(Full Binary Tree) :잎 노드를 제외한 모든 노드가 2개의 자식 노드를 가지고 있는 트리  -높이 균형 트리(Height Balanced Tree):뿌리 노드를 기준으로 왼쪽과 오른쪽 트리간의 높이가 2이상   차이 나지 않는 트리.  -완전 높이 균형 트리(Completely Height Balanced Tree):뿌리 노드를 기준으로 왼쪽과 오른쪽 트리간의   높이..

07-02 트리(Tree) 구현

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1. 트리(Tree) 구현 1)데이터 노드 구현   -왼쪽 자식 오른쪽 형제 표현법(Left Child-Right Sibling)으로 구현   2)함수 원형 선언 3)함수 구현 -노드 생성 및 삭제-트리 삭제 연산-트리 노드 삽입 연산  -트리 정보 출력-테스트

07-01 트리(Tree)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.   1.트리(Tree) 1)정의  -노드들이 나무 가지처럼 연결된 비선형 자료구조이다. 2)구성요소 및 용어  -트리의 가장 최상단 노드를 뿌리라고 그외 하며 가지나 잎이라고 한다.  -뿌리(Root): 최상단 노드  -가지(Branch) ,잎(Leaf): 뿌리외에 하단 노드   -깊이(Depth): 뿌리에서 데이터를 찾기 위해 이동한 노드의 개수  -높이(Height): 가장 최하단 노드의 깊이.  -레벨(Level): 깊이가 같은 노드의 집합   -차수(Degree): 노드가 가지고 있는 자식의 개수3)트리의 표현방법 -괄호로 표현하기 -집합으로 표현하기4)노드의 표현방법-N..

06-02 리스트 기반 큐

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.1.큐(Queue) 1)정의  -데이터가 마지막에 들어간 데이터가 제일 나중에 나오는 후입선출(Last in -Last out)의 형태를 띤  선형 자료구조.  -큐의 가장 앞 요소를 전단(front) 가장 마지막 요소를 후단(Rear)이라고 한다.  -큐은 중요 연산은 삽입(Enqueue)와 제거(Dequeue) 연산 두 가지.    2.링크드 큐(Linked Queue) 1)정의 -리스트를 기반으로 하여 만든 큐. -리스트를 쓰기 때문에 용량 제한이 없다.3.링크드 큐의 데이터 노드 및 스택 구현 1)데이터 노드 구현  2)함수 원형 선언 3)함수 구현-큐 생성 및 삭제 연산-..

06-01 배열 기반 큐(순환 큐)

아래의 상기 내용은 "이것이 자료구조+알고리즘이다. With C언어"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다. 1.큐(Queue) 1)정의  -데이터가 마지막에 들어간 데이터가 제일 나중에 나오는 후입선출(Last in -Last out)의 형태를 띤  선형 자료구조.  -큐의 가장 앞 요소를 전단(front) 가장 마지막 요소를 후단(Rear)이라고 한다.  -큐은 중요 연산은 삽입(Enqueue)와 제거(Dequeue) 연산 두 가지.     2.순환 큐(Circular Queue)  1)개요   -배열을 이용해서 큐를 구현하다면 아래의 그림과 요소를 제거하는 상황에서 요소를 다음 칸으로  옮겨 전단을 옮겨야한다. 그러면 이동하는데 상당한 연산이 든다. -이 문제를 해결하기 위해서 전..