PHP에서 연결 목록 구현
-
SplDoulyLinkedList
클래스를 사용하여 PHP에서 연결 목록 구현 -
push()
메서드를 사용하여 연결 목록에 값 삽입 -
add()
메서드를 사용하여 연결 목록에 값 삽입 -
pop()
메서드를 사용하여 연결 목록에서 요소 삭제 - 연결 목록에서 상위 및 하위 값 찾기
이 기사에서는 PHP에서 연결 목록을 구현하는 방법을 소개합니다.
SplDoulyLinkedList
클래스를 사용하여 PHP에서 연결 목록 구현
연결 목록은 많은 프로그래밍 언어에서 구현되는 일반적인 데이터 구조입니다. 선형이며 서로 연결된 노드를 포함합니다.
각 노드는 데이터와 인접 노드에 대한 링크를 포함합니다. 따라서 연결 목록은 노드 체인을 형성합니다. 연결된 목록에는 다양한 변형이 있습니다.
- 단일 연결 목록: 단방향입니다. 정방향으로만 횡단합니다.
- 이중 연결 목록: 양방향입니다. 정방향과 역방향 모두를 가로지릅니다.
- 순환 연결 리스트: 단방향 및 순환입니다.
- 원형 이중 연결 목록: 양방향 및 원형입니다.
연결 목록에서 다양한 작업을 수행할 수 있습니다. 기본 작업은 다음과 같습니다.
- 순회
- 삽입
- 삭제
- 업데이트
- 검색
PHP는 연결 목록을 구현하기 위한 SplDoulyLinkedList
클래스를 제공합니다. 이중 연결 목록입니다.
push()
메서드를 사용하여 연결 목록에 값 삽입
push()
메소드는 푸시할 매개변수를 허용하고 목록에 값을 추가할 수 있습니다. 요소는 연결 목록의 끝으로 푸시됩니다.
예를 들어 SplDoubleLinkedList
클래스의 인스턴스를 만들고 $list
변수에 할당합니다. push()
메소드를 호출하고 요소를 삽입하십시오.
예제 코드:
$list = new SplDoublyLinkedList;
$list->push(10);
$list->push(20);
$list->push(30);
$list->push(40);
$list->push(40);
아래 예에서 10
, 20
, 30
, 40
및 40
요소를 빈 연결 목록에 추가했습니다. 40
요소가 두 번 추가됩니다.
다음 함수를 사용하여 목록의 요소를 표시할 수 있습니다.
function displayList($list){
for ($list->rewind(); $list->valid(); $list->next()) {
echo $list->current()."<br>";
}
}
rewind()
메서드는 연결 목록의 시작 부분부터 반복자를 되감습니다. 예를 들어, 반복자는 목록의 첫 번째 요소로 이동합니다.
valid()
메서드는 연결 목록에 더 많은 노드가 포함되어 있는지 확인하고 next()
메서드는 연결 목록의 다음 항목으로 이동합니다. 따라서 위의 for
루프의 예에서와 같이 이러한 방법을 사용하여 연결 목록의 요소를 반복할 수 있습니다.
루프 내에서 current()
메서드는 현재 요소를 나타냅니다. 따라서 현재 요소가 인쇄됩니다.
목록 요소를 인쇄해야 할 때마다 이 함수를 displayList()
라고 부를 수 있습니다. 이 기사에서 이 기능을 여러 번 사용할 것입니다.
다음은 $list
를 인수로 사용하여 displayList()
함수를 호출할 때의 출력입니다.
출력:
10
20
30
40
40
add()
메서드를 사용하여 연결 목록에 값 삽입
add()
메서드를 사용하여 위치를 지정하여 연결 목록에 요소를 삽입할 수 있습니다. 이 메서드는 두 개의 매개변수를 사용합니다.
첫 번째 매개변수는 항목을 삽입할 인덱스이고 두 번째 매개변수는 삽입할 항목입니다. 예를 들어 4
와 50
을 매개변수로 사용하여 add()
메서드를 호출하고 displayList()
메서드를 호출합니다.
예제 코드:
$list->add(4,50);
displayList($list);
위의 코드는 우리가 만든 연결 리스트의 네 번째 인덱스에 50
요소를 추가합니다.
출력:
10
20
30
40
50
40
결과적으로 50
요소가 네 번째 색인에 표시됩니다. 이전에 네 번째 색인에 있던 40
요소는 연결 목록의 끝으로 이동합니다.
pop()
메서드를 사용하여 연결 목록에서 요소 삭제
pop()
메서드를 사용하여 연결 목록에서 마지막 요소를 제거할 수 있습니다. 이 메서드는 매개변수를 사용하지 않습니다.
위의 마지막 출력에서 목록에는 다음 요소가 포함됩니다.
10
20
30
40
50
40
pop()
메소드는 연결 목록에서 마지막 요소(40
)를 제거합니다.
예제 코드:
$list->pop();
displayList($list);
출력:
10
20
30
40
50
연결 목록에서 상위 및 하위 값 찾기
top()
메서드를 사용하여 연결 목록의 상단 값을 찾고 하단 값에 대해 bottom()
메서드를 사용할 수 있습니다. 아래의 예는 위의 예의 연속이기도 합니다.
목록에는 다음 항목이 포함되어 있습니다.
10
20
30
40
50
$list
객체로 top()
및 bottom()
함수를 호출하고 echo
함수를 사용하여 인쇄할 수 있습니다.
예제 코드:
displayList($list);
echo "the top value: ".$list->top()."<br>";
echo "the bottom value: ".$list->bottom()."<br>";
결과적으로 최상위 항목은 50
으로 표시되고 맨 아래 항목은 10
으로 표시됩니다.
출력:
10
20
30
40
50
the top value: 50
the bottom value: 10
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn