>  기사  >  Java  >  Java의 스택과 큐의 차이점

Java의 스택과 큐의 차이점

(*-*)浩
(*-*)浩원래의
2019-11-14 10:55:033109검색

Java의 스택과 큐의 차이점

스택:

스택(Stack)이라고도 알려진 스택(Stack)은 제한된 작업을 수행하는 선형 테이블입니다. 제한 사항은 삽입 및 삭제 작업이 테이블의 한쪽 끝에서만 허용된다는 것입니다. 이 끝을 스택의 상단이라고 하고 다른 쪽 끝을 하단이라고 합니다. (추천 학습: java 강좌)

Stack은 운영체제가 프로세스나 스레드(멀티스레딩을 지원하는 운영체제의 스레드)를 생성할 때 이 스레드를 위해 생성하는 저장 영역입니다. 이 영역에는 FIFO 기능이 있습니다. , 컴파일 중에 필요한 스택 크기를 지정할 수 있습니다.

Queue

큐는 특별한 선형 테이블입니다. 특별한 점은 테이블의 프런트 엔드(전면)에서만 삭제 작업과 테이블의 백 엔드(후면)에서 삽입 작업을 허용한다는 것입니다. 스택과 마찬가지로 대기열은 작업이 제한된 선형 목록입니다. 삽입 작업을 수행하는 끝을 큐의 꼬리라고 하고 삭제 작업을 수행하는 끝을 큐의 헤드라고 합니다.

큐에 요소가 없는 경우 이를 빈 큐라고 합니다.

순차 큐 구조를 구축하려면 연속적인 저장 공간을 정적으로 할당하거나 동적으로 적용해야 하며 관리를 위한 두 개의 포인터를 설정해야 합니다. 하나는 헤드 요소를 가리키는 전면 헤드 포인터이고, 다른 하나는 대기열에 추가된 다음 요소의 저장 위치를 ​​가리키는 후면 포인터입니다.

큐는 FIFO(선입선출)를 사용합니다. 새로운 요소(큐에 들어가기를 기다리는 요소)는 항상 연결 목록의 끝에 삽입되며, 읽을 때 항상 연결 목록의 선두부터 읽기 시작합니다. 하나의 요소를 읽을 때마다 하나의 요소가 해제됩니다. 소위 동적 생성 및 동적 릴리스입니다.

그러므로 넘침 등의 문제는 없습니다. 연결리스트는 구조에 의해 간접적으로 형성되므로 순회하는 것도 편리하다. (선입선출)

차이:

스택은 버킷입니다. 마지막에 넣은 것이 먼저 나온 후에야 나옵니다. (후입선출)

큐는 대기열의 선두에서만 삭제 작업을 수행하고 대기열의 끝에서 삽입 작업을 수행할 수 있는 반면, 스택은 스택의 상단에서만 삽입 및 삭제 작업을 수행할 수 있습니다. (선입선출)

위 내용은 Java의 스택과 큐의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.