자료구조3 [C 자료구조] 큐(Queue) 큐의 의미 큐의 사전적 의미를 살펴보면 무엇인가를 기다리는 줄이다. 사전적 의미를 보면 특성을 바로 알 수 있는데, 맛집을 기다리는 사람들의 줄을 생각해보자. 당연히 먼저 선 사람이 나중에 선 사람보다 음식점에 먼저 들어갈 것이다. 이처럼 큐는 FIFO(First-In First-Out) 선입 선출의 특성을 가지고 있다. 자료구조에서 큐는 사전적 의미와 마찬가지로 무언가를 처리하기 위해 대기 중인 자료의 줄이라고 생각하면 된다. 이는 대기행렬(waiting line)이라고도 한다. 그러면 큐는 어떨 때 사용될까? 실제 현실 세계를 정확히 표현하기 위해 사용된다. 선입선출이 큐의 특성이기 때문에 현실세계에서 선입선출 특성을 가진 다양한 시스템들을 나타낼 때 큐를 사용한다. ex) 운영체제의 프린터 스풀러 .. 2021. 4. 12. [C 자료구조] 스택(Stack) 스택이란? 스택이 무엇인지 살펴보기 전에 먼저 사전적 의미부터 알아보자 사전적 의미로는 (물건이 쌓여있는) 더미라고 한다. 물건이 쌓여있다면 내가 제일 먼저 놓은 물건 위에 또다른 물건들이 쌓이고 쌓이다보면 결국 최근에 놓은 물건을 먼저 빼내고, 제일 먼저 놓은 물건은 제일 나중에 빼낼 수 있을 것이다. 그래서 스택이 가장 최근에 들어온 입력이 가장 위에 위치하고, 가장 먼저 나가게되는 후입선출 방식(LIFO, Last-In First-Out)을 특성으로 가진다. 스택을 사용하는 이유 중 하나는 실제 현실세계의 시스템을 표현하기 위해서이기도 하다. 후입선출을 특징으로 가지고 있는 알고리즘에서 필수적으로 사용한다. ex) 계산, 복잡한 미로에서 길 찾는 알고리즘, 트리나 그래프 같은 복잡한 다른 자료구조에.. 2021. 4. 6. [C 자료구조] 리스트 리스트(List) 개념 간단 - 사용 편한 - 소스 구현 쉬움 - 제일 먼저 다루는 부분 자료를 순서대로 저장 - 구현의 편의성 다른 자료구조 구현의 수단으로도 사용 - 복잡한 자료구조를 구현하기 위해 내부적으로 리스트 사용 배열 리스트 배열을 이용해 구현된 리스트 //자료를 저장할 때 가장 많이 사용하는 방법은 자료를 순서대로 저장하는 것 근데 이게 리스트라는 자료구조니까 많이 사용 주의할 점) 리스트는 '한 줄'로 저장 (선형구조) 한 줄로 줄을 세우기 때문에 앞 항목과 뒤 항목이 모두 1개 1번째 - 2번째 - 3번째 순으로 연결 배열과 배열 리스트 배열 : 같은 자료형의 데이터가 메모리 상에 연속적으로 저장되는 자료형 배열 리스트 : 자료가 일직선으로 서로 연결 배열이 메모리 상에 연속적으로 저장.. 2021. 3. 29. 이전 1 다음 728x90