자료구조 3

[자료구조] Queue(큐) 구현하기

Queue(큐)는 선입선출(FIFO; First In First Out)의 자료구조로 데이터들이 들어온 순서대로 처리되는 구조를 말합니다. 데이터 삽입이 들어오는 back/rear 부분과 데이터가 나가는 front 부분이 있습니다. 입력 동작은 Enqueue, 출력동작은 Dequeue라고 합니다. 스택과 마찬가지로 연결리스트만 완벽히 이해한다면 구현하기 쉽습니다 -> 연결리스트 구현하기 큐 구현먼저 Node와 Queue를 만듭니다. Queue에서는 데이터를 추가할 부분인 back, 데이터를 가져올 부분인 front를 갖고 있습니다.123456789101112typedef struct Node{ int data; Node *next;}Node; typedef struct Queue{ Node* front;..

개발/Algorithm 2017.03.12

[자료구조] Stack(스택) 구현하기

Stack(스택)은 모든 원소들의 삽입과 삭제가 한쪽 끝에서만 수행되는 선형 자료구조를 말합니다. 삽입/삭제가 일어나는 부분을 top이라고 하며, 이 부분에서 삽입(Push)과 삭제(Pop)이 일어난다. Peek은 top의 데이터를 확인하는 연산. 후입선출(LIFO; Last In First Out), 나중에 들어온 데이터가 먼저나가는 자료구조입니다. 아래 그림고 같이 'Top'에서 Push와 Pop 연산이 일어나며, 각 노드는 이전의 노드를 가르키고 있게 구현하면 됩니다. 스택을 배열로 구연할 경우는 간단합니다. 배열을 하나 생성 후, top이라는 변수를 통해 삽입/삭제 시 top을 통해 데이터에 접근하면 됩니다. 동적 할당으로 구현하기, 결국엔 연결리스트를 잘 활용하면 스택/큐의 구현은 쉽습니다 ->..

개발/Algorithm 2017.03.12

[자료구조] 동적할당을 이용한 연결 리스트(Linked List) 구현

리스트(List) - 자료구조의 하나, 데이터를 일렬로 순차적으로 나열한 형태리스트를 구현하는 방법에는 배열을 이용하는 방법과 동적할당을 이용해 구현하는 방법이 있습니다.배열로 구현할 경우,구현이 간단하고, 인덱스를 참조하여 한번에 참조가 가능하다는 장점을 갖고 있지만, 갯수에 제한이 있어 유한적인 데이터만 넣을 수 있다는 단점을 갖고 있습니다. 동적할당으로 구현을 할 경우,새로운 자료가 입력될 때마다 새로운 주소로 메모리를 할당해주고 이전에 할당된 메모리를 연결해주므로 메모리 관리에 용이하다고 볼 수 있습니다.그래서 연결리스트(Linked List)란 각 노드가 데이터와 포인터를 갖고 있어, 각 노드가 다음 순서의 노드의 위치정보를 갖고 있는 방식으로 데이터를 저장하는 자료구조입니다. 연결리스트엔 세가..

개발/Algorithm 2017.03.05
반응형