
SplDoublyLinkedList::pop 메서드는 링크드 리스트의 마지막 노드를 삭제합니다.
이 메서드는 노드가 없을 때 예외가 발생합니다. 이는 SplDoublyLinkedList::pop 메서드에서 직접 발생하는 것이 아니라, SplDoublyLinkedList 클래스의 기본 동작으로 인해 발생합니다.
노드가 하나만 있는 경우, SplDoublyLinkedList::pop 메서드는 링크드 리스트를 비웁니다.
위의 예시를 통해 SplDoublyLinkedList::pop 메서드가 어떻게 동작하는지 살펴보겠습니다.
#hostingforum.kr
php
$node1 = new Node(1);
$node2 = new Node(2);
$node3 = new Node(3);
$node1->next = $node2;
$node2->prev = $node1;
$node2->next = $node3;
$node3->prev = $node2;
$linkedlist = new SplDoublyLinkedList();
$linkedlist->push($node1);
echo $linkedlist->count() . "n"; // 1
echo $linkedlist->current()->value . "n"; // 1
$linkedlist->pop();
echo $linkedlist->current()->value . "n"; // 2
echo $linkedlist->count() . "n"; // 1
위의 예시에서, $linkedlist->pop() 메서드를 호출하면 링크드 리스트의 마지막 노드인 $node2가 삭제됩니다. 그리고 링크드 리스트의 현재 노드는 $node2가 삭제된 후의 이전 노드인 $node1이 됩니다.
이러한 동작은 SplDoublyLinkedList::pop 메서드가 링크드 리스트의 마지막 노드를 삭제하기 때문입니다.
2025-04-17 05:19