순환 링크 된 목록을 작성 중이며 do_remove 메서드가 잘 정의되어 있는지 알고 싶습니다. 내가 프로그램을 실행할 때, 그러나 나는 이것이 가상 소멸자를 왜 필요로하지 않는지 조금 아직도 혼란 스럽다. 가상 소멸자는 기본 포인터를 통해 파생 클래스를 제거하려는 경우에만 필요합니까? 기본 클래스를 파생 클래스로 다운 캐스팅 한 다음 파생 클래스 소멸자를
이 질문은 이중 연결 목록의 머리글을 삭제하는 함수를 작성한 시점에서부터 시작되었습니다. 특히 연결 목록에서 해당 포인터를 삭제하면 어떻게됩니까? 내 기능은 다음과 같이 기록 : 때문에 내 코드에 void remHead(){
Node* tmp = head->next;
tmp->prev = NULL;
delete head;
첫 번째로, 나쁜 영어로 죄송합니다. 이중 연결 목록을 구현하려고하지만 일부 메서드가 제대로 작동하는지 확신 할 수 없습니다. 실제로 clear(), remove(const short DATA) -은 DATA, unique() 및 reverse()과 동일한 요소를 모두 제거하므로 올바르게 작동하지 않습니다. 좋은 책, 비디오 또는 기사를 찾지 못했습니다.
이것은 getMin() 메서드에 대한 코드입니다. while 루프에 들어가는 메소드를 가져올 수 없습니다. 당신의 while 루프 버그/오타가 같은 공공 E getMin() { Node<E> curr = header;
Node<E> min = curr;
E temporaryMinimum = header.getElement();
if(isEmpty())
데이터 구조와 재귀 개념이 생소했습니다. 왜이 개념에서 재귀를 사용할 수 있었는지 이해하기 위해 고심하고 있습니다. 나는이 포럼을이 포럼에서 발견했기 때문에 나는 이것의 개념을 정말로 이해할 수 없었다. 어떤 사람이 반복 단계를 설명 할 수 있다면 간단하게 2 1 3 4의 경우, 그것은 내 대신에 크게 평가 될 것입니다. https://www.hackerr
전방과 후방에 삽입 할 수있는 이중 링크 목록을 만들뿐 아니라 목록에서 모든 노드를 삭제할 수 있습니다. 문제는 그것이 작동하지 않는다는 것입니다 오프 제공하고 하나는 NullPointerException을 제공하거나 그냥 exist.The 코드는 않지만 정수도 존재하지 않는다고 말한다 : public class Numbers {
Node hea
템플릿을 사용하여 C++에서 이중 링크 목록을 구현하고 있습니다. 나는 템플렛에 손을 대고있다. template <class T>
class DList{
Node<T> *head;
Node<T> *tail;
public:
Dlist(){
head = tail = nullptr;
}
CLRS (Cormen Intro to Algorithms 3ed)의 연습 문제 (10.3-4)에 대해 혼란 스럽습니다. 내 구현 O (1) 시간에 삭제 + 할당 취소를 수행 할 수있는 것 같아요, 두 솔루션은 내가 온라인으로 찾은이 작업에 대한 O (n) 시간이 필요하고 누가 옳은지 알고 싶어요. 여기 은 운동의 텍스트이다 : 예를 들어, 사용하는 스토리
다음 작업이 주어진 것입니다. 주어진 이중 링크 목록의 실수로 목록의 반대 요소를 곱해야합니다 두 번째로 마지막 마이너스 1 등)을 선택하고이 제품을 새 목록에 추가하십시오. 즉 : 1.1 2.2 3.3 4.4 5.5
그런 다음 우리가 1.1 * 5.5 = 6.05;
2.2 * 4.4 = 9.68;
3.3 * 3.3 = 10.89;
인쇄 그리고
이 코드를 작성하여 링크 된 목록에서 최소 일련의 번호를 찾습니다. public DLNode<T> getMinimum() {
if (isEmpty()) {
return null;
}
DLNode<T> curr = head;
DLNode<T> min = curr;
T temporaryMinimum = h