
이번에는 자료구조 중 링크드 리스트에 대해 알아보자. 링크드리스트(Linked List) 1. 의미 링크드리스트에서의 데이터는 데이터뿐만이 아니라 다음 데이터와 연결되어있는 위치 정보(link)도 같이 들어있는 노드(Node)로 구성되어있는 자료구조를 말한다. 링크드리스트의 연결돼있다는 뜻은 이러한 구조에서 나온 것. 2. 종류 📄단방향 링크드리스트 : 가장 기본적인 형태의 링크드리스트. 노드안에 다음 노드로 연결된 링크가 포함되어 있다. 📄더블 링크드리스트(이중 연결 리스트) : 노드에 이전 데이터로 연결하는 링크를 추가해서 Head만이 아니라 맨 뒤(Tail)부터 데이터를 조회할 수 도 있고, 다시 앞으로 돌아가서 데이터를 조회할 수도 있다. 3. 특징 1) 인덱스가 없고, 현재 데이터 위치에서 이전..

저번에 알아본 큐에 이어 이번 포스팅에선 스택 자료구조에 관해 알아보도록 하겠다. 스택(Stack) 1. 의미 사전적 의미는 적(積), 즉 쌓는다는 의미다. 2. 스택의 구조 Lifo, Filo(Last-in/First-out, First-in/Last-out) 가장 먼저 들어간 자료가 가장 나중에 나오는 구조이다. 스택의 구조를 그림으로 알아보면 다음과 같다. 자료를 입력하면 데이터중 가장 위에 위치하고, 출력할땐 가장 위의 데이터가 나오는 것이 스택 구조이며, 여기서 Push, Pop이라는 용어가 나오는데, 각 용어는 다음과 같은 의미가 있다. Push : Stack에 데이터를 넣는 기능 Pop : 스택에서 데이터를 꺼내는 기능 Push와 Pop을 코드로 구현해보자. 1 2 3 4 5 6 7 8 9 ..

저번 포스팅에서 전체적인 자료구조의 그림을 그려본데에 이어 이번엔 선형적 구조의 자료구조 유형 중 하나인 큐에 대해서 알아보도록 하겠다. 큐(Queue) 1. 의미 사전적 의미는 열(列), 즉 줄을 선다는 뜻이다. 흔히들 게임할 때 "큐 돌린다" 라고 할 때의 그 큐다. 서버가 터져서 생긴 접속 대기열을 뜻하는 그 큐다. 2. 큐의 구조 Fifo, Lilo(First-in/First-out, Last-in/Last-out) 가장 먼저들어간 자료가 가장 먼저 나오는 구조이다. 큐의 구조를 그림으로 알아보면 다음과 같다. 자료를 입력할땐 Back으로 들어가서, 출력할땐 Front로 나오는 식으로 먼저 넣은 자료가 나오는 것이 큐 구조이며, 여기서 Enqueue, Dequeue라는 용어가 나오는데, 각 용어는..
1. 자료 구조(Data Structure)란? 데이터를 찾고, 저장하고, 삭제하는 방식. 2. 자료 구조의 존재 이유 자료 구조의 목적은 메모리의 효율적 사용이다. 컴퓨터 기본 구조는 다음과 같은 세가지로 이루어져 있는데, 프로세서 : 흔히들 CPU(Central Processing Unit; 중앙 처리 장치)라고 부르는 것. 메모리 : 흔히 램(RAM; Random Access Memory)이라고 부르는 것. 스토리지 : 하드디스크와 같은 데이터를 장기 보존 하기 위한 저장소. 프로그램을 실행하면 해당 프로그램 및 그 데이터가 임시적으로 저장소 → 메모리로 이동하고, 프로세서가 메모리에 있는 데이터를 요청하여 연산을 하게 된다. 이때 데이터를 효율적인 방식으로 구조화하지 못하면 메모리도 효율적으로 사..