본문 바로가기
300x250

전체 글44

[자료구조] 큐(Queue) • 큐(queue) - 저장 공간 안에 먼저 입력된 데이터부터 순서대로 출력되는 구조 - 양쪽 반대 방향에서 각각 삽입과 삭제가 이루어짐 - FIFO(First In First Out) 구조 - 연산을 수행하기 위해 자료의 삽입과 삭제를 구분하여 각각의 위치를 지정할 두개의 포인터가 필요함(front, rear) ‣ front 포인터 - 큐의 앞쪽(head)에 위치하여 자료가 출력되는 지점을 가리킴 ‣ rear 포인터 - 큐의 뒤쪽에서 자료를 입력하는 곳을 지정해줌 • 자료 삽입 - front와 rear의 초기 값은 -1로 설정 - 큐에 새로운 자료를 삽입할 때에는 rear 포인터를 먼저 1 증가 - rear와 큐의 크기가 같아지면 더 이상의 삽입 연산은 불가능함 • 자료 삭제 - 큐에서 자료는 입력된 .. 2024. 4. 18.
[자료구조][과제] 하노이의 탑 원판이 3개일 때 총 7번의 시행 횟수가 필요하다. 이를 4개, 5개, 6개로 늘려가면 시행 횟수는 각각 15, 31, 63으로 증가한다. 이를 점점 늘려보면 7개일 때는 127개, 8개일 때에는 255개로 2n-1의 순서로 증가하므로 원판의 개수가 n개일 때 원판을 옮기는 횟수는 2n-1이다. 컴퓨터의 시간복잡도로 계산해보면 O(2n-1), 즉 O(2n)의 시간복잡도를 가진다. 2024. 4. 11.
[자료구조] 스택이란? • 스택 - 삽입과 삭제가 한쪽 끝에서만 수행되는 제한적 개념의 선형 구조 - 가장 마지막에 입력된 자료가 가장 먼저 출력되므로 후입 선출 (LIFO, last in first out) 구조 - 중간에 자료를 삽입(push)하거나 삭제(pop)할 수 없으므로 자료의 입출력이 비교적 제한적이며, 스택의 탑(top) 위치에서만 자료의 삽입과 삭제가 이루어짐. ‣ 탑(top) - 일반적으로 스택의 가장 위에 위치하는 자료 - 삭제할 지점을 가리킴. • 자료 삽입 - 탑의 초깃값은 -1이며, 자료가 삽입될 때마다 1씩 증가함 - 새롭게 입력할 자료를 스택의 가장 위에 추가 - 기존에 저장된 자료들은 추가한 자료의 아래에 위치 - 여유 공간이 있을 경우 얼마든지 자료 추가 가능 - 스택의 크기보다 많은 자료를 입.. 2024. 4. 4.
[자료구조] 다차원 배열이란? • 배열 - 첨자의 개수에 따라 1차원 배열, 2차원 배열, 3차원 배열로 구분함 • 배열의 연산 - 사전에 자료가 저장될 공간을 미리 확보해 두어야 함 - 처음에 설정한 배열의 크기보다 처리할 자료의 개수가 많으면 저장 공간이 부족하기 때문에 모든 자료를 다 처리할 수 없음 • 자료 삽입 - 저장 공간이 가득 차 있는 경우 자료의 추가 삽입은 불가능함 - 여유 공간이 있어도 삽입하려는 위치에 따라 방법이 달라짐 ‣ 배열의 끝에 추가 - 배열 공간 내에 새로운 자료를 추가할 때에는 가장 마지막으로 저장된 자료의 다음 위치에 데이터를 추가함 ‣ 배열의 중간에 삽입 - 삽입하려는 위치에는 이미 다른 자료가 저장되어 있을 수 있기 때문에 먼저 저장된 자료를 오른쪽으로 한 칸씩 이동시켜야 함 - 이후 삽입하고자.. 2024. 4. 4.
[자료구조][과제] 창의적 탐구 활동 pg.52 보호되어 있는 글 입니다. 2024. 4. 4.
[자료구조] 배열이란 무엇인가? • 선형구조 - 비슷한 형태의 자료들을 연속적인 공간에 순서대로 저장하는 자료구조를 말함 - 선형 구조로 저장된 자료들은 이웃하는 각 한 개의 원소와만 연결되기 때문에 각 자료들은 1:1 대응 관계를 형성 • 배열 - 동일한 성격의 자료들을 연속된 공간에 저장하는 가장 간단한 형태의 선형구조 - 반복적이고 많은 자료를 처리할 때 사용 - 배열 내에 저장된 것들을 원소라고 함 - 각각의 원소를 구분하기 위해 자료마다 번호를 붙이는데 이를 인덱스(index)라고 함 - 배열에서 각 자료는 연속적인 메모리 공간에 저장됨 - 논리적인 구조와 하드디스크에 저장되는 물리적 위치가 동일함 배열(c언어) 리스트(python) 자료형 동일한 자료형만 사용 자료형 상관없이 가능 편집 넣고 빼기가 불편함 넣고 빼기가 자유로움 2024. 4. 3.
300x250