스택:
스택(Stack)이라고도 알려진 스택(Stack)은 제한된 작업을 수행하는 선형 테이블입니다. 제한 사항은 삽입 및 삭제 작업이 테이블의 한쪽 끝에서만 허용된다는 것입니다. 이 끝을 스택의 상단이라고 하고 다른 쪽 끝을 하단이라고 합니다. (추천 학습: java 강좌)
Stack은 운영체제가 프로세스나 스레드(멀티스레딩을 지원하는 운영체제의 스레드)를 생성할 때 이 스레드를 위해 생성하는 저장 영역입니다. 이 영역에는 FIFO 기능이 있습니다. , 컴파일 중에 필요한 스택 크기를 지정할 수 있습니다.
Queue
큐는 특별한 선형 테이블입니다. 특별한 점은 테이블의 프런트 엔드(전면)에서만 삭제 작업과 테이블의 백 엔드(후면)에서 삽입 작업을 허용한다는 것입니다. 스택과 마찬가지로 대기열은 작업이 제한된 선형 목록입니다. 삽입 작업을 수행하는 끝을 큐의 꼬리라고 하고 삭제 작업을 수행하는 끝을 큐의 헤드라고 합니다.
큐에 요소가 없는 경우 이를 빈 큐라고 합니다.
순차 큐 구조를 구축하려면 연속적인 저장 공간을 정적으로 할당하거나 동적으로 적용해야 하며 관리를 위한 두 개의 포인터를 설정해야 합니다. 하나는 헤드 요소를 가리키는 전면 헤드 포인터이고, 다른 하나는 대기열에 추가된 다음 요소의 저장 위치를 가리키는 후면 포인터입니다.
큐는 FIFO(선입선출)를 사용합니다. 새로운 요소(큐에 들어가기를 기다리는 요소)는 항상 연결 목록의 끝에 삽입되며, 읽을 때 항상 연결 목록의 선두부터 읽기 시작합니다. 하나의 요소를 읽을 때마다 하나의 요소가 해제됩니다. 소위 동적 생성 및 동적 릴리스입니다.
그러므로 넘침 등의 문제는 없습니다. 연결리스트는 구조에 의해 간접적으로 형성되므로 순회하는 것도 편리하다. (선입선출)
차이:
스택은 버킷입니다. 마지막에 넣은 것이 먼저 나온 후에야 나옵니다. (후입선출)
큐는 대기열의 선두에서만 삭제 작업을 수행하고 대기열의 끝에서 삽입 작업을 수행할 수 있는 반면, 스택은 스택의 상단에서만 삽입 및 삭제 작업을 수행할 수 있습니다. (선입선출)
위 내용은 Java의 스택과 큐의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!