큐 및 스택의 자세한 응용 프로그램은 이 쪽을 참조하십시오. 이 섹션의 C 프로그램은 문자열 구현을 위해 스택 및 큐와 같은 데이터 구조를 사용하는 것을 보여 줍니다. 여기에는 지정된 문자열이 스택을 사용하고 스택을 사용하지 않고 지정된 식이 올바르게 괄호되었는지 확인하는 프로그램이 포함되어 있습니다. 큐는 일부 엔터티에서 첫 번째 순서를 효율적으로 유지하려는 모든 상황에 사용됩니다. 다양한 엔터티가 저장되고 나중에 처리될 수 있도록 유지되는 전송 및 작업 연구( 즉 큐가 버퍼의 기능을 수행합니다). 큐는 기본적으로 데이터를 순차적으로 저장하는 선형 데이터 구조입니다. 첫 번째 아웃(FIFO) 순서를 따릅니다. 이 섹션의 C 프로그램은 Queue의 다양한 구현을 다룹니다. 여기에는 배열, 연결된 목록을 사용하여 Queue를 구현하고 요소를 추가하고 삭제하는 우선 순위 큐를 구현하는 프로그램이 포함되어 있습니다. 우선 순위 큐에서 값은 우선 순위에 따라 순서대로 나옵니다. 큐 의 응용 프로그램: 큐는 사물을 즉시 처리할 필요가 없지만 너비 첫 번째 검색과 같은 첫 번째 첫 번째 순서로 처리해야 하는 경우에 사용됩니다.
Queue의 이 속성은 다음과 같은 종류의 시나리오에서도 유용합니다. 큐는 FIFO(선입선)의 주체에서 작동하며, 먼저 입력한 항목제거를 의미합니다. 큐는 전면과 후면이 두 개 있으며, 앞에서 요소를 삽입 할 수 있으며 후면에서 요소를 삭제할 수 있습니다. 링크 된 목록 구현은 쉽게, 그것은 여기에 설명: 큐 | 세트 2 (링크드 리스트 구현) 대기열의 일반적인 예는 영화관 티켓 카운터입니다, 티켓 창 앞에 서있는 첫 번째 사람이 먼저 티켓을 가지고 줄에서 제거하고 새로운 사람은 항상 끝에서 줄에 서있다. 이 섹션의 C 프로그램은 다른 데이터 구조를 사용하여 Queue의 구현을 보여 줍니다. 여기에는 동적 메모리 할당을 사용하여 배열 및 매크로를 사용하고 스택을 사용하여 큐를 구현하는 프로그램이 포함되어 있습니다. 동적 메모리 할당을 사용하면 프로그램 내에서 프로그램의 요구에 맞게 모든 크기와 길이의 데이터 유형과 구조를 만들 수 있습니다. 다음은 스택 및 큐에 대한 C 프로그래밍 예제 목록입니다. 대기열의 좋은 예는 상점 앞에 있는 고객의 줄입니다.
큐 뒷면에 추가된 큐에 새로 추가된 반면 대기열에서 제거한 경우, 처음 제공된 고객이 처음 제공되었습니다. 배열은 각 요소에 직접 적으로 일정한 시간에 액세스할 수 있는 임의 액세스 데이터 구조입니다. 임의 액세스의 전형적인 그림은 책입니다 – 책의 각 페이지는 다른 사람과 독립적으로 열 수 있습니다. 임의 액세스는 이진 검색과 같은 많은 알고리즘에 매우 중요합니다. 순환 큐 구현은 분할의 나머지 부분을 취하여 계산되는 modulo 연산자(표시%)를 사용하여 수행됩니다(예: 8%5는 3). modulo 연산자를 사용 하 여 순환 배열로 큐를 볼 수 있습니다., 여기서 “래핑” “뒤로 % array_size”로 시뮬레이션할 수 있습니다. 후면 및 전면 인덱스 외에도 큐의 요소 수를 계산하기 위한 cur라는 또 다른 인덱스를 유지합니다. 이 인덱스를 갖는 것은 구현의 논리를 단순화.
깊이 있는 첫 번째 검색에서 우리는 막다른 길에 도착할 때까지 길을 따라 갑니다. 그런 다음 다른 경로를 얻기 위해 스택을 터뜨려 역추적하거나 백업합니다. 상위 가 용량에 도달하면 동적 스택 추상화에서 스택 크기를 두 배로 늘리겠습니다. 우리는 컴파일하고 위의 프로그램을 실행하는 경우, 그것은 다음과 같은 결과를 생성합니다 – 스택은 재귀 데이터 구조입니다. 스택의 구조적 정의는 다음과 같습니다: 막다른 곳에 도달하면 역추적해야 합니다. 하지만 어디로 역추적? 이전 선택 지점까지 이동합니다. 따라서 각 선택 지점에서 가능한 모든 선택 사항을 스택에 저장합니다. 그런 다음 역추적은 단순히 스택에서 다음 선택을 터지는 것을 의미합니다.