Deque의 응용, 장점 및 단점
Deque 또는 이중 종료 큐는 이중 종료 큐와 유사한 기능을 제공하는 순차 선형 수집 데이터 큐입니다. 이 데이터 구조에서는 데이터 처리에 있어 FIFO(선입선출) 규칙을 따르지 않습니다. 이 데이터 구조는 요소가 큐의 끝에 삽입되고 맨 앞에서 제거되기 때문에 deque라고도 합니다. deque를 사용하면 양쪽 끝에서만 데이터를 추가하고 제거할 수 있습니다. Deque 연산의 시간 복잡도는 O(1)입니다. 데크에는 두 가지 종류가 있어요 -
입력이 제한되어 있습니다
단일 종단 입력 제한.
양쪽 끝에서 데이터 삭제를 허용합니다.
출력 제한
단일 종단 출력 제한.
양쪽 끝에 데이터를 삽입할 수 있습니다.
다음 명령은 코더가 데크에서 데이터 세트 풀링을 사용하여 다양한 작업을 수행하는 데 도움이 됩니다. -
push_back() - 데크 뒤에서 요소를 삽입합니다.
push_front() - 데크 앞에서 요소를 삽입합니다.
pop_back() - 데크 뒷면에서 요소를 제거합니다.
pop_front() - 데크 앞부분의 요소를 제거합니다.
front() - 데크의 앞부분 요소를 반환합니다.
back() - 데크 뒤에 있는 요소를 반환합니다.
at() - 지정된 인덱스를 설정/반환합니다.
size() - 요소 수를 반환합니다.
empty() - 데크가 비어 있으면 true를 반환합니다.
원형 배열에서는 deque 연산을 사용할 수 있습니다. 어레이가 가득 차면 처음부터 프로세스를 시작할 수 있습니다. 그러나 선형 배열의 경우 배열이 가득 차면 더 이상 데이터를 삽입할 수 없습니다. 그러면 "오버플로 팝업"이 표시됩니다.
양단 큐 적용
Deque에는 다양한 실시간 애플리케이션이 있습니다.
작업 일정 신청용.
O(1) 시간 안에 시계 방향 및 반시계 방향 회전 작업을 수행할 수 있습니다.
deque 알고리즘은 웹 브라우저 기록에도 존재합니다.
정렬 시 실행 취소 작업을 수행합니다.
양단 큐의 장점
데크에는 많은 장점이 있습니다.
앞뒤에서 데이터를 추가하고 삭제할 수 있습니다.
그들의 크기는 역동적입니다.
Deque는 작업 수행에 효율적인 타이밍을 제공합니다.
여기에서는 LIFO 스택이 사용됩니다.
여기서는 재배포가 불가능합니다.
이것은 적절한 동기화를 통한 스레드로부터 안전한 프로세스입니다.
캐시 친화적입니다.
양단 큐의 단점
이중 대기열의 단점은
Deque 프로세스 메모리 소비율이 높습니다.
다중 스레드 동기화 문제가 있습니다.
일부 플랫폼에서는 사용할 수 없습니다.
정렬 작업을 구현하는 데 적합하지 않습니다.
Deque에는 기능이 더 적습니다.
양단 큐 연산 알고리즘
1단계 - 크기 n의 deque 배열을 고려합니다.
2단계 - 두 포인터를 "front=-1"(앞을 의미) 및 "rear=0"(설정을 의미)으로 설정합니다.
이 프로세스에는 여러 하위 부분이 있습니다. Deque에서는 여러 작업을 수행할 수 있습니다. 여기에 요약해 보겠습니다.
deque의 앞부분부터 데이터를 삽입하는 알고리즘:-
1단계 - 전면 위치를 확인하세요.
2단계 - "front
3단계 - 그렇지 않으면 "front"를 1 줄여야 합니다.
4단계 - 배열 전면에 새 키 요소를 추가합니다.
deque 뒤에 데이터를 삽입하는 알고리즘:-
1단계 - 배열이 꽉 찼는지 확인하세요.
2단계 - 가득 차면 "rear=0"을 적용합니다.
3단계 - 그렇지 않으면 "rear" 값을 1만큼 늘립니다.
4단계 - "array[rear]"에 새 키를 다시 추가합니다.
deque 앞의 데이터를 삭제하는 알고리즘:-
1단계 - 데크가 비어 있는지 확인하세요.
2단계 - 목록이 비어 있으면("front=-1") 언더플로 상태이므로 삭제를 수행할 수 없습니다.
3단계 - 데크에 요소가 하나만 있는 경우. 그런 다음 "앞=뒤=-1"입니다.
4단계 - 그렇지 않으면 "front"가 끝에 있고 "front=0"으로 설정됩니다.
5단계 - 그렇지 않으면 앞=앞+1입니다.
deque 뒷면에서 데이터를 삭제하는 알고리즘:-
1단계 - 데크가 비어 있는지 확인하세요.
2단계 - 비어 있으면("front=-1") 삭제를 수행할 수 없습니다. 이는 언더플로우 상태입니다.
3단계 - deque에 데이터가 하나만 있는 경우 "front=rear=-1"입니다.
4단계 - 그렇지 않은 경우 아래 단계를 따르세요.
5단계 - 후면이 전면인 경우 "rear=0"입니다. 전면 "후면 = n-1"로 이동합니다.
6단계 - 그렇지 않으면 후면=후면-1입니다.
deque가 비어 있는지 확인하는 알고리즘:-
1단계 - front=-1이면 데크가 비어 있습니다.
deque가 가득 찼는지 확인하는 알고리즘:-
1단계 - 이전=0이고 이후=n-1
인 경우
2단계 - 또는 앞=뒤+1
deque 구문
으아아아데이터 구조에서 deque는 스택 및 큐의 일부 속성을 상속합니다. C++에서 deque는 벡터의 벡터로 구현됩니다.
양단 큐를 이용한 다양한 메소드 처리
방법 1 - 일반적인 방식으로 deque 구현
방법 2 - deque에 요소 삽입
방법 3 - 데크에서 요소에 액세스
방법 4 - 데크의 요소 변경
양단 큐의 일반적인 구현
이 C++ 빌드 코드에서는 일반적인 방식으로 deque 작업을 구성합니다. 이 예에서는 대기열의 백엔드에 요소를 삽입하며 이것이 전체 시스템이 수행되는 방식입니다.
예 1
으아아아출력
으아아아deque에 요소 삽입
이 코드에서는 데크에 요소를 삽입하는 C++ 코드를 생성하려고 합니다. 이를 수행하는 방법에는 두 가지가 있습니다.
push_back() - 배열 끝에 요소를 삽입합니다.
push_front() - 배열의 시작 부분에 요소를 삽입합니다.
예 2
으아아아출력
으아아아deque의 요소에 액세스
두 가지 방법을 사용하여 데크의 요소에 액세스할 수 있습니다.
front() - 앞에서 반환 값을 얻을 수 있습니다.
back() - 다음 데이터를 반환합니다.
at() - 지정된 인덱스에서 반환합니다.
출력
으아아아데크의 요소 변경
이 코드에서는 at() 메서드를 사용하여 특정 데크의 요소를 바꾸거나 변경할 수 있습니다.
예 4
으아아아출력
으아아아결론
이번 글을 통해 우리는 Double-ended Queue의 동작 방식, 응용, 장단점, C++를 이용한 알고리즘과 가능한 코드에 대해 알아보았습니다.
위 내용은 Deque의 응용, 장점 및 단점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP에서 화살표 기호의 역할과 실제 적용 PHP에서 화살표 기호(->)는 일반적으로 객체의 속성과 메서드에 액세스하는 데 사용됩니다. 객체는 PHP의 객체지향 프로그래밍(OOP)의 기본 개념 중 하나입니다. 실제 개발에서는 객체를 조작할 때 화살표 기호가 중요한 역할을 합니다. 이 기사에서는 화살표 기호의 역할과 실제 적용을 소개하고 독자의 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. 1. 객체의 속성에 접근하기 위한 화살표 기호의 역할 화살표 기호를 사용하여 객체의 속성에 접근할 수 있습니다. 쌍을 인스턴스화할 때

홈 화면에서 중요한 항목을 삭제하고 다시 복구하려고 하시나요? 다양한 방법으로 앱 아이콘을 화면에 다시 표시할 수 있습니다. 우리는 당신이 따라갈 수 있는 모든 방법과 홈 화면에 앱 아이콘을 다시 넣을 수 있는 방법에 대해 논의했습니다. 방법 1 - 앱 라이브러리에서 앱 아이콘 바꾸기 앱 라이브러리에서 직접 홈 화면에 앱 아이콘을 배치할 수 있습니다. 1단계 – 옆으로 스와이프하여 앱 라이브러리의 모든 앱을 찾습니다. 2단계 – 이전에 삭제한 앱 아이콘을 찾습니다. 3단계 – 메인 라이브러리의 앱 아이콘을 홈 화면의 올바른 위치로 드래그하기만 하면 됩니다. 이것은 응용 다이어그램입니다

Linuxtee 명령은 기존 출력에 영향을 주지 않고 출력을 파일에 쓰거나 출력을 다른 명령으로 보낼 수 있는 매우 유용한 명령줄 도구입니다. 이 기사에서는 초보자부터 숙련자까지 Linuxtee 명령의 다양한 애플리케이션 시나리오를 심층적으로 살펴보겠습니다. 1. 기본 사용법 먼저 tee 명령어의 기본 사용법을 살펴보겠습니다. tee 명령의 구문은 다음과 같습니다: tee[OPTION]...[FILE]...이 명령은 표준 입력에서 데이터를 읽고 데이터를 다음 위치에 저장합니다.

Go 언어의 특징: 높은 동시성(고루틴) 자동 가비지 수집 크로스 플랫폼 단순성 모듈성 Go 언어의 장점: 고성능 보안 확장성 커뮤니티 지원

Go 언어는 Google이 개발하여 2007년에 처음 출시된 오픈 소스 프로그래밍 언어입니다. 간단하고 배우기 쉽고 효율적이며 동시성이 높은 언어로 설계되었으며 점점 더 많은 개발자가 선호합니다. 이 기사에서는 Go 언어의 장점을 살펴보고 Go 언어에 적합한 몇 가지 애플리케이션 시나리오를 소개하며 구체적인 코드 예제를 제공합니다. 장점: 강력한 동시성: Go 언어에는 동시 프로그래밍을 쉽게 구현할 수 있는 경량 스레드 고루틴에 대한 지원이 내장되어 있습니다. Goroutin은 go 키워드를 사용하여 시작할 수 있습니다.

서버리스 아키텍처를 사용하여 PHP 애플리케이션을 배포하면 유지 관리가 필요 없고 종량제 방식이며 확장성이 뛰어나고 단순화된 개발 및 여러 서비스 지원이라는 이점이 있습니다. 단점으로는 콜드 스타트 시간, 디버깅의 어려움, 공급업체 종속, 기능 제한, 비용 최적화 문제 등이 있습니다.

Golang은 Google이 개발한 오픈 소스 프로그래밍 언어로 효율적이고 빠르며 강력하며 클라우드 컴퓨팅, 네트워크 프로그래밍, 빅 데이터 처리 및 기타 분야에서 널리 사용됩니다. 강력한 형식의 정적 언어인 Golang은 서버측 애플리케이션을 구축할 때 많은 이점을 제공합니다. 이 기사에서는 Golang 서버의 장점과 유용성을 자세히 분석하고 특정 코드 예제를 통해 Golang 서버의 성능을 설명합니다. 1. 고성능 Golang 컴파일러는 코드를 로컬 코드로 컴파일할 수 있습니다.

Go 언어(Golang이라고도 함)는 Google이 개발한 프로그래밍 언어로 첫 출시 이후 많은 관심을 받았습니다. 이는 프로그래머 생산성을 높이고 점점 더 복잡해지는 소프트웨어 개발 요구 사항을 해결하도록 설계되었습니다. Go 언어에는 뛰어난 장점과 가치가 많이 있습니다. 이 기사에서는 이러한 장점을 심층적으로 살펴보고 Go 언어의 강력함을 보여주는 구체적인 코드 예제를 제공합니다. 1. 동시 프로그래밍의 장점 현대 프로그래밍 언어인 Go에는 강력한 동시 프로그래밍 기능이 내장되어 있습니다. 고루틴과 채널을 통과합니다.
