2011-02-12 3 views
1

내에서는 원 링크 된 목록에 새 elment을 추가 할 수 ... 내가 처음을 추가하려고하면 일부 확률값 ...에서는 원 연결리스트 C++

if(empty() && pos ==1) 
{ 

    newnode = new Node(ele); 
    newnode->next = newnode; 

    last = newnode; 
} 

.. 내가 glibc는 감지했습니다를했습니다 : double free or corruption (fasttop) ... 왜 그런지 압니까?

나는 그 자신에 .next를 가리켜 야하기 때문에 그게 아닌가요? 내 자신을 향해 나를 가리켜 주려면 어떻게해야합니까?

+1

무료 더블 무언가가 해제되는 것을 의미한다. 그 후에 바로 –

답변

1

이 노드는 빈() 노드를 고려하여 최상위 노드라고 가정합니다. LL 헤드 노드는 여기서 설정해야합니다. 또한 코드에서 노드의 다음 노드를 자체 노드로 설정합니다. 해야 할 일 :

currentNode->Next = new Node(); 
lastNode = currentNode; 

헤드 노드가 설정된 후에 수행하십시오.

+0

? Node * elem; elem newnode = 새로운 노드 (ele); – Roots

1

순환 링크 된 목록을 사용하는 주된 이유는 단순화입니다.

그리고 그 경우 항상 (순환 목록과 함께) 헤더 노드을 사용해야합니다.

빈 순환 목록의 경우 헤더 노드가 다시 자신과 연결되어 있고 목록의 영구적 인 부분인데 어떤 경우에는 센티넬 값을 제외하고 어떤 데이터도 포함하지 않습니다 (–).

헤더 노드가있는 상태에서 첫 번째 노드를 삽입하는 것은 두 번째 또는 세 번째 동일한 코드를 삽입하는 것과 같습니다.

그래서 시도해보십시오.

건배 & HTH.,