큐는 특별한 선형 테이블입니다. 테이블의 프런트 엔드(전면)에서만 삭제 작업을 허용하고 테이블의 후면(후면)에서 삽입 작업을 허용합니다. 스택과 마찬가지로 큐는 삽입 작업이 제한된 선형 테이블입니다. 삭제 작업을 수행하는 끝을 큐의 헤드라고 합니다. 큐에 요소가 없으면 빈 큐라고 합니다.
큐는 특별한 선형 테이블입니다. 특별한 점은 테이블의 프런트 엔드(전면)에서만 삭제 작업과 테이블의 백 엔드(후면)에서만 삽입 작업을 허용한다는 것입니다. 스택과 마찬가지로 대기열은 작업이 제한된 선형 목록입니다. 삽입 작업을 수행하는 끝을 대기열의 꼬리라고 하고, 삭제 작업을 수행하는 끝을 대기열의 헤드라고 합니다. 큐에 요소가 없으면 빈 큐라고 합니다.
큐의 데이터 요소를 큐 요소라고도 합니다. 큐에 큐 요소를 삽입하는 것을 큐에 넣기라고 하며, 큐에서 큐 요소를 삭제하는 것을 큐에서 빼기라고 합니다. 큐는 한쪽 끝에서는 삽입하고 다른 쪽 끝에서는 삭제만 허용하기 때문에 가장 먼저 큐에 들어간 요소만 큐에서 먼저 삭제될 수 있으므로 이 큐를 FIFO(선입선출)라고도 합니다. 첫 번째 아웃) 선형 목록.
큐의 연결 리스트 구현
큐 생성 과정에서 선형 연결 리스트의 원리를 사용하여 큐를 생성할 수 있습니다.
연결된 목록 기반 큐는 노드를 동적으로 생성하고 삭제해야 하는데, 이는 덜 효율적이지만 동적으로 성장할 수 있습니다.
큐는 FIFO(선입선출)를 사용합니다. 새로운 요소(큐에 들어가기를 기다리는 요소)는 항상 연결 목록의 끝에 삽입되며, 읽을 때 항상 연결 목록의 선두부터 읽기 시작합니다. 하나의 요소를 읽을 때마다 하나의 요소가 해제됩니다. 소위 동적 생성 및 동적 릴리스입니다. 따라서 오버플로 등의 문제가 발생하지 않습니다. 연결리스트는 구조에 의해 간접적으로 형성되므로 순회하는 것도 편리하다.
큐의 기본 동작
(1) 큐 초기화: Init_Queue(q), 초기 조건: 큐 q가 존재하지 않습니다. 연산 결과: 빈 큐가 생성됩니다.
(2) 큐 입력 연산: In_Queue(q,x), 초기 조건: 팀 q가 존재합니다. 작업 결과: 기존 대기열 q에 대해 요소를 삽입합니다. 대기열의 첫 번째 요소를 삭제하고 해당 값을 반환하면 대기열이 변경됩니다.
(4) 대기열의 첫 번째 요소를 읽습니다: Front_Queue(q,x), 초기 조건: 큐 q가 존재하고 비어 있지 않음, 작업 결과: 큐의 첫 번째 요소를 읽고 해당 값을 반환하면 큐는 변경되지 않은 상태로 유지됩니다.
(5) 비어 있는 쿼리 쿼리: 빈_큐(q), 초기 조건: 큐; q가 존재하면 연산 결과: q가 빈 큐이면 1을 반환하고 그렇지 않으면 0을 반환합니다.
더 많은 관련 지식을 알고 싶으시다면
PHP 중국어 홈페이지위 내용은 대기열은 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!