스택:
스택은 목록의 맨 위에서만 요소를 삽입하고 제거할 수 있는 선형 데이터 구조입니다. 스택은 후입선출 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 첫 번째로 나오는 요소입니다. 스택에 요소를 삽입하는 것을 푸시(Push) 작업이라고 하며, 스택에서 요소를 제거하는 것을 팝(Pop) 작업이라고 합니다. 스택에서는 항상 top이라는 포인터를 사용하여 목록에 있는 마지막 요소를 추적합니다.
스택의 다이어그램은 다음과 같습니다.
큐:
큐는 "뒤로"라는 목록의 한쪽에서만 요소를 삽입할 수 있고 요소만 삽입할 수 있는 선형 데이터 구조입니다. "front"라는 목록의 다른 쪽에서 제거됩니다. 큐 데이터 구조는 FIFO(선입선출) 원칙을 따릅니다. 즉, 목록에 첫 번째로 삽입된 요소는 목록에서 가장 먼저 삭제되는 요소입니다. 큐에 요소를 삽입하는 것을 대기열에 넣기(enqueuing) 작업이라고 하며, 요소를 삭제하는 것을 대기열에서 빼기(dequeuing) 작업이라고 합니다.
큐에서 우리는 항상 두 개의 포인터를 유지합니다. 하나의 포인터는 첫 번째 포인터에 삽입된 요소를 가리키며 여전히 이전 포인터가 나타내는 목록에 있고, 다른 포인터는 마지막 포인터와 그 이후에 삽입된 요소를 가리킵니다. 포인터 표현.
큐의 다이어그램은 다음과 같습니다.
스택과 큐의 차이점
Stack | Queue |
스택은 LIFO 원칙을 기반으로 합니다. 즉, 마지막에 삽입된 것 요소는 목록의 첫 번째 요소입니다. | 큐는 FIFO 원칙을 기반으로 합니다. 즉, 삽입된 첫 번째 요소가 목록에서 나오는 첫 번째 요소입니다. |
스택의 삽입과 삭제는 top이라는 목록의 한쪽 끝에서만 발생합니다. | 큐의 삽입과 삭제는 목록의 반대쪽 끝에서 이루어집니다. 삽입은 목록의 끝에서 발생하고 삭제는 목록의 맨 앞에서 발생합니다. |
삽입 작업을 푸시 작업이라고 합니다. | 삽입 작업을 대기열에 넣기 작업이라고 합니다. |
삭제 작업을 팝 작업이라고 합니다. | 삭제 작업을 대기열 제거 작업이라고 합니다. |
스택에서는 항상 목록의 마지막 요소를 가리키는 top이라는 목록에 액세스하는 포인터만 유지합니다. | 큐에서는 목록에 액세스하기 위한 두 개의 포인터를 유지합니다. 전면 포인터는 항상 목록에 삽입된 첫 번째 요소를 가리키며 여전히 존재하며, 후면 포인터는 항상 마지막으로 삽입된 요소를 가리킵니다. |
위 내용은 데이터 구조: 스택과 큐의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!