728x90 Queue3 [자료구조] 원형 큐(Circular Queue) • 원형큐의 등장 이유- 큐는 구조가 간단하고 연산이 쉬운 장점이 있지만 front와 rear포인터가 계속 증가하다 보면 큐의 앞부분이 비어 있더라도 자료를 추가로 삽입할 수 없는 문제가 생김- 기존에 저장된 자료를 앞으로 이동시켜 삽입할 공간을 확보하는 방법도 있지만 이 경우에도 자료를 일일이 옮겨 주어야 하는 번거로움과 그에 따른 비용이 발생해 효율성이 떨어짐 • 원형큐- 기본 큐의 처믕과 끝을 논리적(포인터)으로 연결하여 자료의 오버플로가 발생하는 문제점을 보완하고 저장 곤간을 보다 효율적으로 사용한다는 장점을 가짐- front와 rear의 초깃값은 0이며 자료가 입력될 때마다 rear 포인터가 한 칸씩 앞으로 이동하며 연산을 수행함- 모든 공간에 자료가 가득 차게 되면 front 포인터와 .. 2024. 5. 30. [자료구조] 큐(Queue) • 큐(queue) - 저장 공간 안에 먼저 입력된 데이터부터 순서대로 출력되는 구조 - 양쪽 반대 방향에서 각각 삽입과 삭제가 이루어짐 - FIFO(First In First Out) 구조 - 연산을 수행하기 위해 자료의 삽입과 삭제를 구분하여 각각의 위치를 지정할 두개의 포인터가 필요함(front, rear) ‣ front 포인터 - 큐의 앞쪽(head)에 위치하여 자료가 출력되는 지점을 가리킴 ‣ rear 포인터 - 큐의 뒤쪽에서 자료를 입력하는 곳을 지정해줌 • 자료 삽입 - front와 rear의 초기 값은 -1로 설정 - 큐에 새로운 자료를 삽입할 때에는 rear 포인터를 먼저 1 증가 - rear와 큐의 크기가 같아지면 더 이상의 삽입 연산은 불가능함 • 자료 삭제 - 큐에서 자료는 입력된 .. 2024. 4. 18. [자료 구조] 자료구조에 대하여 자료 구조란 자료를 효율적으로 저장하고 관리하는 것을 의미한다. 위의 옷들을 자료라고 생각하면 위의 옷들을 각각 분류해서 상의, 하의로 분류하는 것이 자료구조라고 볼 수 있다. 효율적인 자료구조를 사용함으로써 우리는 메모리의 절약, 프로그램 실행 시간 단축, 프로그램의 구현 용이 등...을 이룰 수 있다. 만약 우리가 코드를 짤 때 계획없이 의식의 흐름대로 코드를 짜면 아래와 같은 스파게티코드를 볼 수 있다... 메모리의 절약 : 프로그램이 목적에 맞게 필요한 정보한을 저장하여 저장 공간을 효율적으로 사용하는 것 프로그램 실행 시간 단축 : 효율적인 알고리즘을 구현하기 위해서는 먼저 효율적인 자료구조를 만들어야 함 프로그램의 구현 용이 : 프로그램의 목적에 맞게 설계된 자료 구조는 프로그램의 구현을 쉽게.. 2024. 3. 12. 이전 1 다음 728x90