프로그래밍68 Chapter09 우선순위 큐(Priority Queue)와 힙(Heap) 08-1 트리의 개요스택, 큐와 같은 선형 자료구조들과 달리 트리는 비선형 자료구조이다. 트리(Tree)의 접근 "트리는 계층적 관계(Hierarchical 출처: http://ohdumak.tistory.com/ [오두막]2018/01/15 - [프로그래밍/자료구조] - Chapter08 트리(Tree) 09-1 우선순위 큐의 이해제목만 봐서는 앞서 구현한 '큐'를 확장하는 수준 같지만 '큐'의 구현과 '우선순위 큐'의 구현에는 많은 차이가 있기 때문이다. 우선순위 큐와 우선순위의 이해 앞서 공부한 '큐'의 핵심 연산 두 가지- enqueue 큐에 데이터를 삽입하는 행위- dequeue 큐에서 데이터를 꺼내는 행위 '우선순위 큐'의 핵심 연산- enqueue 우선순위 큐에 데이터를 삽입하는 행위- de.. 2018. 2. 20. Chapter08 트리(Tree) 2018/01/10 - [프로그래밍/자료구조] - Chapter07 큐(Queue) 08-1 트리의 개요 스택, 큐와 같은 선형 자료구조들과 달리 트리는 비선형 자료구조이다. 트리(Tree)의 접근 "트리는 계층적 관계(Hierarchical Relationship)를 표현하는 자료구조이다." 트리는 데이터의 저장과 삭제가 아닌 '표현'에 초점일 맞춰져 있다. "트리의 구조로 이뤄진 무엇인가를 표현하기에 적절히 정의되어 있는가?" 트리 관련 용어의 소개 - 노드: node 트리의 구성요소에 해당하는 A, B, C, D, E, F와 같은 요소 - 간선: edge 노드와 노드를 연결하는 연결선 - 루트 노드: root node 트리 구조에서 최상위에 존재하는 A와 같은 노드 - 단말 노드: terminal .. 2018. 1. 15. Chapter07 큐(Queue) 2018/01/02 - [프로그래밍/자료구조] - Chapter06 스택(Stack) 07-1 큐의 이해와 ADT 정의 큐(Queue)의 이해"먼저 들어간 것이 먼저 나온다!"'선입선출 방식의 자료구조', 'FIFO(First-In, First-Out) 구조의 자료구조' 큐의 ADT 정의 큐의 핵심 연산은 enqueue(큐에 데이터를 넣는 연산),. dequeue(큐에서 데이터를 꺼내는 연산) 두 가지이다. 큐 자료구조의 ADTvoid QueueInit(Queue *pq);- 큐의 초기화를 진행한다.- 큐 생성 후 제일 먼저 호출되어야 하는 함수이다.int QIsEmpty(Queue *pq);- 큐가 빈 경우 TRUE(1)을, 그렇지 않은 경우 FALSE(0)을 반환한다.void Enqueue(Queue.. 2018. 1. 10. Chapter06 스택(Stack) 2017/12/21 - [프로그래밍/자료구조] - Chapter05 연결 리스트(Linked List) 3 06-1 스택의 이해와 ADT 정의 스택(Stack)의 이해"먼저 들어간 것이 나중에 나온다!"'후입선출 방식의 자료구조', 'LIFO(Last-In, First-Out) 구조의 자료구조'실제로 스택은 쉽게 이해할 수 있고 또 쉽게 구현할 수 있는 자료구조이다.다만, 스택! 하면 '스택의 활용' 혹은 '스택 기반의 알고리즘'과 관련된 전통적인 예가 하나 있는데, 이것이 의외로 간단하지 않다. 오히려 스택을 공부하는 것보다 이것을 경험하는데 더 많은 시간과 노력이 필요할 것이다. 스택 ADT의 정의스택을 대표하는 넣고, 꺼내고, 들여다 보는 연산을 가리켜 각각 push, pop, peek이라 한다. .. 2018. 1. 2. Chapter05 연결 리스트(Linked List) 3 2017/12/13 - [프로그래밍/자료구조] - Chapter04 연결 리스트(Linked List) 2 '양방향 연결 리스트(doubly linked list)' 또는 '이중 연결 리스트'라고 불리는 자료구조는 노드가 양쪽 방향으로 연결된 구조의 리스트이다. 양방향 연결 리스트의 선입견일반적인 선입견은 양방향 연결 리스트가 단방향 연결 리스트보다 그 구조가 복잡하고 구현이 쉽지 않는다는 것!하지만 이는 그림상의 오해! 실제로 코드가 덜 복잡하다! 나도 해당 부분은 어느정도 공감한다. 양방향 연결 리스트의 구현: 리스트의 초기화와 노드의 삽입양방향 연결 리스트의 초기화를 담당하는 ListInit 함수의 정의 typedef struct _dbLinkedList { Node *head; Node *cur;.. 2017. 12. 21. Chapter04 연결 리스트(Linked List) 2 2017/12/08 - [프로그래밍/자료구조] - Chapter03 연결 리스트(Linked List) 1 Chapter03에서 배운 세 가지- 추상 자료형에 대한 이해- 리스트 자료구조의 특성과 활용- 리스트 자료구조의 배열 기반 구현 특성이 정적인 배열은 필요로 하는 메모리의 크기에 유연하게 대처하지 못한다. 그래서 등장한 것이 '동적인 메모리의 구성'이다. 2017. 12. 13. 이전 1 2 3 4 5 6 7 8 ··· 12 다음