본문 바로가기

프로그래밍/자료구조14

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.
Chapter03 연결 리스트(Linked List) 1 03-1 추상 자료형: Abstract Data Type 컴퓨터 공학에서의 추상 자료형(Abstract Data Type)추상 자료형! 간단히 ADT라고 불린다. 자료구조에서의 추상 자료형추상 자료형(ADT): 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것연산의 종류를 결정하는 것도 자료형 정의의 일부로 보아야 하고, 이러한 연산의 종류가 결정되었을 때 자료형의 정의는 완성된다.'자료형'의 정의에 '기능' 혹은 '연산'과 관련된 내용을 명시할 수 있다는 것이다. 따라서 추상 자료형이라 하여 그것에 기능 혹은 연산과 관련된 내용을 명시할 수 없다는 생각을 버리기 바란다. 자료구조의 학습에 ADT의 정의를 포함합니다.학습순서리스트 자료구조의 ADT를 정의한다.ADT를 근거로.. 2017. 12. 8.