2014-03-30 3 views
0

연습으로 List라는 자체 컨테이너 클래스 템플릿을 만듭니다. 이 템플릿을 기반으로 단일 엔드 연결리스트, 그리고 노드과 같이, 목록 자체에 중첩 된 구조체입니다 :목록에 대해 pop_front 함수를 작성하려면 어떻게해야합니까?

template<typename T> 
class list 
{ 
protected: 
    struct node 
    { 
     T data; 
     node* link; 
    }; 
    node* head; 
    //Rest of the code after here 
}; 

컨테이너 목록을 구축하는 두 가지 기능이 있습니다는 push_front 및 pop_front을. 나는 push_front 함수를 알아낼 수 있었지만 pop_front 함수를 작성하는 방법을 알아내는 데 어려움이있었습니다. pop_front 함수는 목록의 머리 부분을 제거하고 목록의 다음 값을 머리 부분으로 설정합니다. 나는 실제 pop_front 함수가 어떻게 작동하는지 모르겠다. 그래서 나는 여기에서 붙어있다. 다음에 무엇을해야합니까?

+1

'pop_front' 메소드 또는'pop_back' 메소드를 작성하려고하는지 명확하게 설명하십시오. 당신은 당신의 질문에 두 이름을 사용합니다. –

+0

오, 미안해. 그것은 pop_front입니다. – Dwarf

답변

1

어떻게 작성할지 모르겠습니다. 나에 관해서는 다음과 같은 방법으로 쓰겠습니다.

void pop_front() 
{ 
    if (head) 
    { 
     node *tmp = head; 
     head = head->link; 
     delete tmp 
    } 
} 
+0

흠, 반환 값이 없습니까? –

+0

그것은 std :: list가하는 것입니다. http://www.cplusplus.com/reference/list/list/pop_front/ – kfsone

+0

'next'가하는 일을 명확하게 설명해 주시겠습니까? 컨테이너의 다음 값입니까? – Dwarf

관련 문제