본문 바로가기
반응형

자료구조10

스택(Stack) 자료구조란? (C언어, Java, Python 예시코드 포함) (1) 스택(Stack) 자료구조란?스택(Stack)은 데이터를 후입선출(LIFO, Last In First Out) 방식으로 처리하는 선형 자료구조입니다. 즉, 가장 나중에 삽입된 데이터가 가장 먼저 제거됩니다. 이 특성 덕분에 함수 호출 관리, 계산기 구현, 문자열 역순 처리 등 다양한 프로그래밍 문제에서 활용됩니다. (2) 스택의 기본 동작삽입(Push): 스택의 맨 위에 데이터를 추가.삭제(Pop): 스택의 맨 위 데이터를 제거.확인(Peek 또는 Top): 스택의 맨 위 데이터를 제거하지 않고 확인. (3) 스택의 주요 특징후입선출(LIFO): 나중에 삽입된 데이터가 먼저 제거됨.제한된 접근: 데이터는 스택의 맨 위에서만 삽입 및 제거 가능.구현 방식: 배열 또는 연결 리스트를 사용. (4) 스.. 2024. 12. 18.
큐(Queue) 자료구조란? (C언어, Java, Python 예시코드) (1) 큐(Queue) 자료구조란?큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO, First In First Out) 방식으로 동작하는 데이터 구조입니다. 이러한 특성 때문에 대기열, 작업 스케줄링, 메시지 처리 등 다양한 응용 분야에서 활용됩니다. (2) 큐의 기본 동작삽입(Enqueue): 큐의 끝(Rear)에 데이터를 추가.(예를들어 50을 큐에 추가할 경우 40에 위치한 rear를 한칸 오른쪽으로 밀고 그 칸에 추가)삭제(Dequeue): 큐의 앞(Front)에서 데이터를 제거.(현재 front가 위치한 10을 빼내고 deque 후 front는 20을 가리킴)보기(Peek): 큐의 앞에 있는 데이터를 제거하지 않고 확인.(단순히 현재 front가 가리키고 있는 값이 뭔지만 .. 2024. 12. 18.
링크드 리스트(2) - 성능 개선 2023.04.20 - [자료구조/LINKED LIST 링크드 리스트] - 1. 링크드 리스트(Linked List) - 더블 링크드 리스트(메모리 풀 방식) 1. 링크드 리스트(Linked List) - 더블 링크드 리스트(메모리 풀 방식)이번 글에서는 링크드 리스트 중 더블 링크드 리스트에 대해서 알아보고, 실제로 C언어 코드로 구현까지 해보도록 하겠습니다. 일반적으로 동적할당을 이용한 구현 코드가 널리 알려져 있지만,best-coding.tistory.com     이전 글에서는 링크드 리스트가 무엇인지 알아보고 실제로 더블 링크드 리스트를 메모리 풀 방식으로 구현해봤습니다. 이번 글에서는 링크드 리스트의 성능을 개선할 수 있는 방법을 알아보도록 하겠습니다. (1) 특정 노드에 빠르게 접근하기링크드.. 2023. 4. 21.
링크드 리스트(Linked List)(1) - 더블 링크드 리스트(메모리 풀 방식) 이번 글에서는 링크드 리스트 중 더블 링크드 리스트에 대해서 알아보고, 실제로 C언어 코드로 구현까지 해보도록 하겠습니다. 일반적으로 동적할당을 이용한 구현 코드가 널리 알려져 있지만, 저는 메모리 풀 방식을 활용한 코드를 작성하도록 하겠습니다(왜냐하면 알고리즘 문제 풀이시에는 메모리 풀 방식이 훨씬 시간이 적게 걸리기 때문입니다.) 자세한 내용은 밑에서 설명드리도록 하겠습니다. 링크드 리스트의 경우 직접 구현시에 포인터와 구조체를 사용합니다. "포인터, 구조체, 구조체 포인터"가 무엇인지 잘 모르시는 분들을 해당 내용을 먼저 공부하시고 다시 이 글을 보시면 훨씬 좋을 것 같습니다! (1) 링크드 리스트란?링크드 리스트는 위 그림처럼 여러 노드들을 연결한 자료구조입니다. 저장하는 데이터 하나의 단위를 일.. 2023. 4. 20.
반응형