구현 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

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

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

개발/Algorithm 2017.03.05

DFS/BFS 숙달을 위한 알고리즘 문제(기본/응용)

DFS/BFS의 경우 사실 이론은 조금만 읽어도 금방 이해가 가능한데요,그러나 막상 처음 구현하려 하면 바로 구현하기 힘든 경우가 많은데 알고리즘 문제를 반복적으로 풀며 구현해보면 금방 익숙하게 구현할 수 있게 됩니다. 다음은 DFS/BFS 학습을 위해 풀었던 문제들로[기본]은 간단하게 DFS/BFS를 이용하여 풀 수 있는 문제이고, [응용]은 DFS/BFS 중에도 조금 응용을 해야 풀 수 있는 문제입니다기본적인 이론을 학습한 후 아래 문제들을 순서대로 풀어보면 좋을 것 같습니다. [기본]1. 바이러스 : https://www.acmicpc.net/problem/26062. 단지번호 붙이기 : https://www.acmicpc.net/problem/26673. 보물섬 : https://www.acmic..

개발/Algorithm 2016.02.17
반응형