
SplDoublyLinkedList::push 메서드는 노드의 위치를 지정해주는 방법이 없습니다. 하지만, SplDoublyLinkedList 클래스는 SplDoublyLinkedList::insert 메서드를 제공합니다. 이 메서드는 특정 위치에 노드를 추가할 수 있습니다.
SplDoublyLinkedList::insert 메서드는 두 개의 인자를 받습니다. 첫 번째 인자는 추가할 노드의 위치를 지정하는 인덱스입니다. 두 번째 인자는 추가할 노드 자체입니다.
예를 들어, SplDoublyLinkedList 객체가 다음과 같이 초기화되어 있다고 가정해 보겠습니다.
#hostingforum.kr
php
$list = new SplDoublyLinkedList();
$list->push(1);
$list->push(2);
$list->push(3);
이 경우, SplDoublyLinkedList::insert 메서드를 사용하여 노드 2의 앞에 노드 0을 추가할 수 있습니다.
#hostingforum.kr
php
$list->insert(1, 0);
이 코드를 실행하면, SplDoublyLinkedList 객체의 노드 순서는 다음과 같이 변경됩니다.
#hostingforum.kr
php
0 -> 0
1 -> 1
2 -> 2
3 -> 3
SplDoublyLinkedList::push 메서드의 시간 복잡도는 O(1)입니다. SplDoublyLinkedList::insert 메서드의 시간 복잡도는 O(n), n이 노드의 개수입니다.
SplDoublyLinkedList::push 메서드의 구현 코드는 다음과 같습니다.
#hostingforum.kr
php
public function push($value) {
$this->insert($this->count(), $value);
}
이 코드를 통해, SplDoublyLinkedList::push 메서드는 SplDoublyLinkedList::insert 메서드를 호출하여 노드를 추가합니다.
2025-04-13 18:30