PHP 표준 라이브러리 spl 연결 목록, 스택, 큐
이중 연결 리스트 클래스: SplDoublyLinkedList
1. 노드 추가 및 삭제 방법
push: 노드 끝에 노드 삽입 연결리스트
pop: 연결된 목록에서 꼬리 노드를 가져오고 연결된 목록에서 이 노드를 삭제해도 현재 포인터의 위치는 변경되지 않습니다.
unshift: 연결 리스트의 선두에 노드를 삽입합니다
Shift: 연결리스트 헤드 노드 삭제
2. 포인터 연산 방법
rewind: 연결리스트의 현재 포인터가 연결리스트의 헤드(즉, 하단)를 가리키도록 한다
current: 연결된 목록의 현재 노드 포인터가 가리키는 요소를 가져옵니다. 호출하기 전에 Rewind를 호출해야 합니다. 가리키는 노드가 삭제되면 빈 노드를 가리킵니다
next: 연결된 리스트의 현재 포인터가 다음 노드를 가리키도록 하고 current의 반환 값은 그에 따라 변경됩니다.
하단: 연결 리스트의 헤드 요소를 가져옵니다. 현재 포인터 위치는 변경되지 않습니다.
top: 연결된 리스트의 tail 요소를 가져옵니다. 현재 포인터 위치는 변경되지 않습니다.
3. 기타 방법(사용법은 스택 클래스 참조)
valid: 여전히 노드가 있는지 확인합니다. 연결된 목록, 출력을 반복할 때 사용할 수 있습니다. 판단하세요
count: 연결 리스트의 노드 수를 셉니다
key: 현재 노드의 키 값을 반환합니다
offsetSet: 지정된 키의 값을 설정합니다. 참고: 키가 0인 경우 0은 연결된 목록의 맨 위 또는 맨 아래를 가리키고 스택의 맨 위를 가리킵니다.
offunset: 지정된 키의 값 등록 해제
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 10:52 */</span><span>$obj</span><span>=</span><span>new</span> SplDoublyLinkedList(); <span>$obj</span><span>-></span>push(<span>'b'</span>); <span>$obj</span><span>-></span>push(<span>'c'</span>); <span>$obj</span><span>-></span>unshift(<span>'a'</span>); var_dump(<span>$obj</span>); <span>/* array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } ) */</span><span>$obj</span><span>-></span>rewind(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span><span>$obj</span><span>-></span>next(); var_dump(<span>$obj</span><span>-></span>current());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>bottom());<span>//string(1) "a"</span> var_dump(<span>$obj</span><span>-></span>top());<span>//string(1) "c"</span> var_dump(<span>$obj</span><span>-></span>pop());<span>//string(1) "c"</span> var_dump(<span>$obj</span>); <span>/* * array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } */</span> var_dump(<span>$obj</span><span>-></span>shift());<span>//string(1) "a"</span> var_dump(<span>$obj</span>); <span>/* * array(1) { [0]=> string(1) "b" } */</span></code>
Stack 클래스: SplDoublyLinkedList 클래스에서 상속된 SplStack 클래스
원리: 스택 클래스의 하위 레이어는 스택으로 구현되며, 스택은 고급 후처리입니다. 따라서 SplDoublyLinkedList 클래스에서 상속된 SplStack 클래스의 일부 메서드는 rewind 메서드와 같이 이해에 약간의 차이가 있습니다. spl이 rewind 메서드를 사용한 후 포인터는 스택의 상단을 가리킵니다. 그림에서 Push 및 Pop은 스택의 최상위 요소에서 작동하고, unshift 및 Shift는 스택의 최하위 요소에서 작동합니다.
<code><span><?</span>php <span>/** * Created by 马廷广 * User: 马廷广 * Date: 2015/8/5 * Time: 11:47 */</span><span>$stack</span><span>=</span><span>new</span> SplStack(); <span>$stack</span><span>-></span>push(<span>'a'</span>); <span>$stack</span><span>-></span>push(<span>'b'</span>); <span>$stack</span><span>-></span>push(<span>'c'</span>); echo <span>$stack</span><span>-></span>count();<span>//3</span><span>$stack</span><span>-></span>rewind(); echo <span>$stack</span><span>-></span>current();<span>//c</span><span>$stack</span><span>-></span>offsetSet(<span>0</span>,<span>'d'</span>);<span>//offsetSet中0指向的是图中的栈顶,由栈顶向下递增1,2,3,4</span><span>while</span>(<span>$stack</span><span>-></span>valid()){ echo <span>$stack</span><span>-></span>key()<span>.</span><span>"->"</span><span>.</span><span>$stack</span><span>-></span>current(); <span>$stack</span><span>-></span>next(); } <span>/*2->d 1->b 0->a */</span></code>
대기열 클래스: SplDoublyLinkedList 클래스
dequeue: 대기열을 종료합니다
큐 클래스의 rewind, offsetSet 및 기타 메소드는 연결 목록
<code><?php /** * Created <span>by</span> 马廷广 * <span>User</span>: 马廷广 * <span>Date</span>: <span>2015</span>/<span>8</span>/<span>5</span> * <span>Time</span>: <span>12</span>:<span>36</span> */ $obj = <span>new</span> SplQueue(); $obj->enqueue(<span>'a'</span>); $obj->enqueue(<span>'b'</span>); $obj->enqueue(<span>'c'</span>); var_dump($obj); /* [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> } */ $obj->unshift(<span>"d"</span>); $obj->push(<span>'e'</span>); var_dump($obj); /* * array(<span>5</span>) { [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"d"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>3</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> [<span>4</span>]<span>=></span> string(<span>1</span>) <span>"e"</span> } */ $obj->rewind(); echo $obj->current();<span>//</span>d $obj->offsetSet(<span>0</span>,<span>'h'</span>); var_dump($obj); /* * array(<span>5</span>) { [<span>0</span>]<span>=></span> string(<span>1</span>) <span>"h"</span> [<span>1</span>]<span>=></span> string(<span>1</span>) <span>"a"</span> [<span>2</span>]<span>=></span> string(<span>1</span>) <span>"b"</span> [<span>3</span>]<span>=></span> string(<span>1</span>) <span>"c"</span> [<span>4</span>]<span>=></span> string(<span>1</span>) <span>"e"</span> } */</code>

핫 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)

뜨거운 주제











많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

Java의 String.valueOf() 함수를 사용하여 기본 데이터 유형을 문자열로 변환 Java 개발에서 기본 데이터 유형을 문자열로 변환해야 할 때 일반적인 방법은 String 클래스의 valueOf() 함수를 사용하는 것입니다. 이 함수는 기본 데이터 유형의 매개변수를 허용하고 해당 문자열 표현을 반환할 수 있습니다. 이 기사에서는 기본 데이터 유형 변환을 위해 String.valueOf() 함수를 사용하는 방법을 살펴보고 다음과 같은 몇 가지 코드 예제를 제공합니다.

char 배열을 문자열로 변환하는 방법: 할당을 통해 달성할 수 있습니다. char 배열이 문자열에 직접 값을 할당하고 실행하도록 하려면 {char a[]=" abc d\0efg ";string s=a;} 구문을 사용합니다. 변환을 완료하는 코드입니다.

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

덤프 파일은 일반적으로 덤프 파일 또는 코어 덤프 파일이라고도 하는 이진 파일을 나타냅니다. 이러한 종류의 파일은 컴퓨터 시스템에 심각한 오류나 비정상적인 상황이 발생할 때 생성됩니다. 시스템이나 응용 프로그램의 상태, 스택, 레지스터, 메모리 이미지, 로그 및 기타 정보를 저장하는 데 사용됩니다.

OPStack은 Optimism Network의 개발 그룹인 Optimism Collective에서 출시한 오픈 소스 블록체인 프레임워크입니다. 이는 Ethereum과 Optimism 커뮤니티 모두에게 중요한 도구입니다. OPStack의 주요 목표는 Optimism Mainnet과 다가오는 Optimism Superchain 및 거버넌스 모델에 주요 소프트웨어 도구를 제공하여 Optimism Network를 강화하는 것입니다. 개발자 중심의 환경을 제공함으로써 OPStack의 핵심 아이디어는 Ethereum 공간에서 성장과 혁신을 촉진하는 것입니다. 이는 최첨단 개발을 위한 길을 열어주고 블록체인 생성을 더욱 단순하게 만듭니다. OPStac

안녕하세요 여러분, 오늘은 Java: String에 대한 기본 지식을 여러분과 공유하겠습니다. String 클래스의 중요성은 말할 필요도 없이 우리 백엔드 개발에서 가장 많이 사용되는 클래스라고 할 수 있으므로 이에 대해 이야기할 필요가 있다.

Java의 String.replace() 함수를 사용하여 문자열의 문자(문자열) 바꾸기 Java에서 문자열은 불변 객체입니다. 즉, 문자열 객체가 생성되면 해당 값을 수정할 수 없습니다. 그러나 문자열에서 특정 문자나 문자열을 바꿔야 하는 상황이 발생할 수 있습니다. 이때 Java의 String 클래스에 있는 replacement() 메소드를 사용하여 문자열 교체를 구현할 수 있습니다. String 클래스의 replacement() 메소드에는 두 가지 유형이 있습니다.
