2015-01-29 3 views
0

링크 된 목록의 끝에 노드를 만들고 함수는 목록의 머리글에 매개 변수를 받아야하며 기존의 정수 값 2 개를 새로운 노드 (int age, int id).연결된 목록 문제가 끝날 때의 노드

제 문제는 listHead (목록의 머리 부분에 대한 포인터)이 계속 신원을 밝히지 않는 경우입니다.

여기에 새로운 노드에 대한 제 기능을 끝에 추가 할 수있다 :

int insert(int n, int m) 
{ 
    StudentCard* tempp = new StudentCard; 
    tempp->id = n; 
    tempp->age = m; 
    tempp->next = NULL; 
    if (listHead = NULL) 
    { 
     listHead = tempp; 
    } 
    else 
    { 
     StudentCard* tempp2 = listHead; 
     while (tempp2->next != NULL) 
     { 
      tempp2 = tempp->next; 
     } 
     tempp2->next = tempp; 
    } 
} 

http://pastebin.com/raw.php?i=n2CtLNbp 전체 코드, 함수가 모든 방법을 아래에 있습니다.

+0

이것은 C++ 인 것으로 보입니다 (태그를 붙여야합니다). – ChuckCottrill

+0

질문의 일부로 목록 요소의 선언을 제공하십시오. 단일 링크 목록 또는 이중 링크 목록을 사용하고 있습니까? 헤드 포인터 또는 헤드 및 테일 포인터 만 유지합니까? 목록 머리를 올바르게 초기화하지 않은 것 같습니다. – ChuckCottrill

+0

학생 카드 * listHead; \t // 목록 헤드의 포인터 listHead = NULL; main() 바로 뒤에 선언되었고, 붙여 넣기 문서를 체크 아웃했습니다. – hp456

답변

1

insert에 참조하고 있지만 해당 범위에 선언 된 변수는 없습니다. 그것이 문제이다.

+0

int insert (StudentCard * listHead, int n, int m) {하지만 어떻게 작동하는지 테스트 할 수 있습니까? 또한 어떤 값을 반환합니까? – hp456

+0

'insert'에서 값을 반환 할 필요가 없습니다. 그냥 '무효'라고 선언하십시오. – nicebyte

+0

좋습니다. void의 값을 어떻게 출력합니까? 또한,이 선언에 잘못된 것이 있습니까 : void insert (StudentCard * l, int n, int m) { – hp456