본문 바로가기

개발 공부/자료구조7

스택(Stack) 구현하기 - 자바(Java) 스택(Stack) 구현하기 이번에는 앞서 설명한 Stack을 구현해보도록 하겠습니다. 구현에 앞서 필요한 기능들을 정리하자면 1. push 스택의 맨 뒤에 Data를 추가합니다. 2. pop 스택에서 Data를 추출합니다. 스택은 LIFO(Last In First Out)의 형태이기 때문에 스택에서 제일 마지막 Data를 꺼내오게됩니다. 3. peek 스택의 마지막 데이터를 보여줍니다. 단순히 스택의 마지막 데이터를 보여주기때문에 스택의 값에는 변함이 없습니다. 구현 List를 이용해 Stack을 구현하겠습니다. import java.util.ArrayList; public class StackPractice { public static void main(String[] args) { Stack stac.. 2020. 2. 19.
큐(Queue) Java로 구현하기 큐(Queue) 구현하기 이번에는 앞서 설명한 Queue를 구현해보도록 하겠습니다. 구현에 앞서 필요한 기능들을 정리하자면 1. enqueue 큐에 데이터를 삽입합니다. 2. dequeue 큐의 맨 앞에 있는 데이터를 꺼내옵니다. 꺼내온 뒤에는 큐에서 제거합니다. 3. peek 큐의 맨 앞에 있는 데이터가 뭔지 확인합니다. 4. isEmpty 큐가 비어있는지 확인합니다. 구현하기 여기서는 Java의 List를 사용해 구현하도록 하겠습니다. import java.util.ArrayList; public class QuerePractice { public static void main(String[] args) { Queue queue = new Queue(); // 데이터 넣기 queue.enqueue(1.. 2020. 2. 12.
스택(Stack)이란 스택(Stack) 스택은 LIFO(Last In First Out) 형식을 기반으로 한 자료구조입니다. LIFO 란 나중에 들어온 데이터가 먼저 나가게되는 방식입니다. 스택에서 자료를 넣는 것을 push 자료를 꺼내는 것을 pop 이라고 부릅니다. 위의 사진처럼 저장 공간이 세로로 되어있고 거기에 데이터를 차곡 차곡 쌓아간다고 생각하시면 이해하기 좀 더 편할 것 같습니다. 스택의 사용 뒤로가기 버튼 우리가 사용하는 브라우저의 뒤로가기 버튼이 바로 스택을 사용한 것 입니다. 2020. 2. 11.
큐(Queue) 란 큐(Queue) 큐 (Queue)란 FIFO(First In First Out) 방식을 기반으로 한 자료구조 입니다. FIFO란 먼저 들어온 Data가 먼저 나가게 되는 방식입니다. 일상생활에서도 종종 큐를 접할 수 있습니다. 대표적인 예를 들어보겠습니다. 대기줄 큐에 대한 예를 설명할 때 가장 많이 나오는게 바로 대기줄 입니다. 우리가 음식을 먹으려 줄을 섰을 때 먼저 온사람이 먼저 주문을 하는 것처럼 큐도 먼저 들어온 Data가 먼저 나가게 됩니다. 큐가 사용되는 곳 큐는 프린터의 출력, 프로세스 관리 등 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용됩니다. 큐의 주요 동작 기능 Queue의 마지막에 데이터 삽입 보통 insert, enqueue, offer, push 라는 이름의 함수로.. 2020. 2. 10.
리스트(List) 리스트란 리스트란 순서가 있는 엘리먼드의 모임입니다. 배열이 가지고 있는 장점 중 하나인 인덱스를 버리는 대신 데이터의 삽입, 삭제에 용이한 자료구조입니다. 노드 (Node) 리스트에서 저장되는 데이터의 단위입니다. 보통 노드에는 입력된 값 (Data)과 함께 다음 노드에 대한 주소값이 같이 저장됩니다. 리스트의 장 / 단점 1. 장점 데이터 추가 삭제에 용이합니다. 각 노드에 다음 노드에 대한 주소의 값이 저장되어 있기 때문에 데이터 추가나 삭제를 할때 이 주소값을 바꿔줌으로써 데이터 추가나 삭제가 편리합니다. 생성할 때 따로 정해진 메모리를 할당해주지 않아도 됩니다. 배열처럼 처음 생성할 때 크기를 지정해주지 않기 때문에 저장되는 데이터 양에 손쉽게 대처할 수 있습니다. 2. 단점 데이터에 접근할 때.. 2020. 2. 7.
배열이란 배열(Array)이란 배열이란 자료구조의 가장 기초적인 형태입니다. 배열은 번호(Index)와 번호에 대응하는 데이터들로 이루어져 있는데 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어 있습니다. 일반적으로 배열은 고정된 길이를 설정해주어야 합니다. 배열의 특징 1. 크기가 정해져 있다. 배열을 선언하게 되면 사용 가능한 메모리 영역 중에서 설정한 배열의 크기 만큼의 연속된 메모리를 할당 받습니다. 2. Index값을 갖는다. 배열은 Index라는 값을 가집니다. 위의 사진에서 Index가 0인 값은 1, Index가 3인 값은 4가 됩니다. 일반적으로 Index는 0부터 시작합니다. 배열의 장 / 단점 장점 Index로 값에 접근하기때문에 해당 값의 Index만 알고있으면 값으로의 접근이.. 2020. 1. 20.
자료구조란 자료구조란 자료구조란 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미합니다. 여기서 자료란 현실 세계에서 수집하 사실이나 개념의 값을 의미합니다. 자료구조를 사용하는 이유는 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 자료구조의 특징 자료구조에는 몇가지 특징이 있습니다. 효율성 추상화 재사용성 1. 효율성 상황에 맞는 적절한 자료구조를 사용하게 되면 데이터 처리의 효율을 높일 수 있습니다. 간단한 예를들어 자료구조에는 배열과 리스트라는 데이터 처리 기법이 있습니다. 다음에 설명하겠지만 여기서는 배열은 탐색에 용이하고 리스트는 데이터 추가, 삭제에 용이하다는 점만 말하겠습니다. 데이터를 검색해야하는 일이 많은 작업에서는 리스트 보다는 탐색에 용이한 배.. 2020. 1. 19.