더블링크드리스트 예제

우리는 새로운 이중 링크 된 목록을 만들고 우리의 도우미 방법 중 일부를 사용 하 여 그것에 일부 노드를 추가 합니다. 우리 목록에는 두 명의 타니가 있습니다. 삽입의 첫 번째 구현에서 두 번째 노드 다음에 노드를 삽입하려면 작동하지 않습니다. 이는 삽입이 발견된 첫 번째 노드에서 발생하기 때문입니다. 그러나 향상된 구현을 통해 원하는 위치를 정확하게 지정합니다. 우리의 콘솔을 보면 우리는 singly 연결된 목록 1) DLL은 앞뒤로 모두 통과 할 수 있습니다 이상이 장점을 참조하십시오. 2) 삭제할 노드에 대한 포인터가 주어지면 DLL의 삭제 작업이 더 효율적입니다. 3) 지정된 노드 앞에 새 노드를 신속하게 삽입할 수 있습니다. 개별적으로 연결된 목록에서 노드를 삭제하려면 이전 노드에 대한 포인터가 필요합니다. 이 이전 노드를 얻으려면 목록이 트래버스되는 경우가 있습니다. DLL에서는 이전 포인터를 사용하여 이전 노드를 얻을 수 있습니다. C# 또는 C++에서 예제 9.19의 내부 클래스를 에뮬레이트할 수 있습니까? (힌트 : 주변 클래스에 대한 Java의 숨겨진 참조의 명시 적 버전이 필요합니다.) 값으로 요소를 삭제하는 것은 값으로 요소를 제거하기 위해 여러 경우를 처리해야 하기 때문에 이중으로 연결된 목록에서 모든 삭제 함수 중 가장 까다로운 것입니다.

먼저 함수가 어떻게 생겼는지 살펴 보겠습니다. 이중으로 연결된 목록의 첫 번째 및 마지막 노드는 즉시 액세스할 수 있으며(즉, 통과 없이 액세스 가능하며 일반적으로 머리와 꼬리라고 함) 목록의 시작 또는 끝에서 목록의 순회를 각각 허용합니다. 특정 데이터 값이 있는 노드에 대한 목록 검색에서 처음부터 끝까지 또는 처음부터 끝까지. 이중으로 연결된 목록의 모든 노드는 일단 얻은 후 지정된 노드에서 어느 방향(시작 또는 끝)으로 목록의 새 순회를 시작하는 데 사용할 수 있습니다. 이 간단한 함수는 주어진 요소 후 이중으로 연결된 원형 링크 리스트에 노드를 삽입합니다. 새 노드를 삽입하려는 노드를 찾을 수 없는 경우 항목이 찾을 수 없다는 메시지가 사용자에게 표시됩니다.