자료구조16 큐 {순환 큐, 링크드 큐} 큐는 입력과 출력 창구가 따로 존재하고 먼저 들어간 데이터가 먼저 나오는 선입 선출(First In-First Out 구조) 자료구조, 큐는 Buffer로 많이 사용함, 큐의 가장 앞 요소를 전단, 가장 마지막 요소를 후단이라고 함.삽입(Enqueue) 연산은 후단, 제거(Dequeue) 연산은 전단에서 각각 수행됨.큐의 삽입: 후단에 노드를 덧붙여서 새로운 후단을 만드는 연산큐의 삭제: 전단의 노드를 없애서 전단 뒤에 있는 노드를 새로운 전단으로 만드는 연산 만약 배열을 이용해서 큐를 만든다면?제거 연산에서 나머지 요소들을 한 칸씩 당기는 비용이 상당하다 -> 전단을 가리키는 변수 도입으로 전단의 위치만 변경.후단도 후단을 가리키는 변수에 실제 후단 위치 +1을 한 값을 담아 후단이 가리키는 위치에 데.. 2025. 4. 16. 스택 {배열 기반 스택, 링크드 리스트 기반 스택} 스택은 데이터를 바닥에서부터 쌓아 올리는 구조. 스택에서의 입 / 출력은 오직 스택의 꼭대기에서만 이루어짐. 스택 맨 아래에 있는 데이터를 꺼내려면 그 위의 데이터를 모두 걷어내야 한다. Last In-First Out , First In- LastOut 스택의 주요 기능은 삽입(Push)과 제거(Pop) 나머지 연산은 두 연산을 위한 보조 연산. 삽입 연산: 스택 위에 새로운 노드 (요소)를 쌓는 일.제거 연산: 스택에서 최상위 노드를 걷어내는 것. 배열 기반의 스택: 스택 생성 초기에 사용자가 부여한 용량만큼의 노드를 한꺼번에 생성. 최상위 노드의 위치를 가리키는 변수를 두고 삽입과 제거 연산을 수행. 배열 기반 스택의 노드 구조체: 데이터만 담는 구조체로 표현됨. 배열 기반의 스택 구조체: 용량과.. 2025. 4. 15. 리스트 {링크드 리스트, 더블 링크드 리스트, 환형 링크드 리스트} 목록 형태로 이루어진 데이터 형식. 목록을 이루는 개별 요소를 노드 (Node)라고 하고 첫 번째 노드를 헤드 (Head), 마지막 노드를 테일(Tail)이라고 함. 리스트의 길이는 헤드부터 테일까지의 노드 개수와 같다. 배열과의 차이: 배열은 크기를 지정해줘야 하고 생성 후에 크기를 변경할 수 없다.리스트는 데이터 집합 보관 기능을 가지면서도 유연하게 크기를 바꿀 수 있는 자료구조이다. 링크드 리스트는 노드를 연결해서 만든 리스트, 링크드 리스트의 노드는 데이터를 보관하는 필드와 다음 노드와 연결 고리 역할을 하는 포인터로 이루어짐. 노드 생성/소멸 : malloc()으로 할당, free()로 해제노드 추가 연산: 링크드리스트의 테일 노드 뒤에 새로운 노드를 만들어 연결하는 연산. 꼬리 붙이기노드 탐.. 2025. 4. 15. 자료구조란 자료구조 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터 보관 방법과 데이터에 관한 연산들의 총합 단순 자료구조는 프로그래밍 언어에서 통상적으로 제공하는 기본 데이터 형식. ex) int, long , double 등등... 선형 자료구조는 데이터 요소를 순차적으로 연결하는 자료 구조로 구현과 사용이 쉬움. ex) 배열, 링크드 리스트, 스택, 큐 , 힙 비선형 자료구조는 데이터 요소를 비순차적으로 연결. 한 데이터에서 여러 데이터 요소로 연결되기도 여러데이터 요소에서 한 데이터로 연결되기도 함. ex) 트리, 그래프 ADT(추상 데이터 형식)는 자료구조가 갖추어야 할 일련의 연산. ADT는 정의하기 나름이다.ADT는 개념을 제시하고 자료구조는 이를 구현한다. 알고리즘이란 어떠한 문제를 풀기.. 2025. 4. 15. 이전 1 2 3 다음