2014-11-29 6 views
0

그래서 연결된 목록 푸시 백에 대해 작업 해 왔으며 때마다 이상한 결과물을 얻었습니다. 누군가 내가 뭘 잘못하고 있는지 볼 수 있습니까? 내가 좀 이상한 출력을지고있어LinkedList의 Push_back 함수에 오류가 있습니까?

void IntList::push_back(int ne) { 
if(head == NULL) 
    tail = head = new IntNode(ne); 

IntNode *nes = new IntNode(ne); 
IntNode *remp = head; 
while (remp->next != NULL) 
    remp = remp->next; 
remp->next = nes; 
} 

, 내 전화는

IntList a; 
a.push_back(46); 
a.push_back(20); 
a.push_back(777); 
a.select_sort(); 
a.insert_sorted(800); 
a.display(); 
cout << endl; 

하고 목록이 비어 때 20 46 46 777 800

+0

'tail '포인터가 있다면'push_back'에 사용하지 않을까요? – sp2danny

+0

마지막에'tail '을'nes'에 설정하지 않았습니다. – 0x499602D2

답변

0

를 출력, 단일 항목을 밀어 return

if(head == nullptr) // using nullptr instead of NULL 
{ 
    tail = head = new IntNode(ne); 
    head->next = nullptr; 
    return; 
} 

첫 번째 푸시의 경우 항목이 두 번 삽입되므로

+0

나는 46 세 이전에 아직도 20 점을 얻고있다. 나머지 프로그램에 대해서는 잘 모릅니다. 그러나 확실히 도움이되었습니다! – Marksman46

+0

목록을 정렬해야하는 a.select_sort()를 호출했기 때문에 – eMAD