여기에없는 내용을 집어 넣을 수는 없습니다.링크 된 목록에 끝 노드 추가
: 그럼 내가이 만든void InsertBeginning(int val) {
Node *n = new Node();
n->data = val;
n->next = A;
A = n;
DisplayList(); //prints list
}
그리고 지금은 내 목록의 마지막에 같은 일을하지만, 작업을 수행 할 : 내가 제대로 내 연결리스트의 시작 부분에 새 노드를 삽입하는 방법을 알고
void AddNode(int val) {
Node *n = new Node();
n->data = val;
n->next = A;
//finds last empty node
while (n->next != NULL) {
n = n->next;
}
A = n;
DisplayList();
}
하지만이 모든 작업은 첫 번째 노드를 제외한 모든 것을 삭제합니다.
그 편집도 컴파일되지 않습니다를 다음과 같이 (즉, 상황은 "목록의 첫 번째 노드"를위한 특수 처리를 피하기) 작동 할 수 있도록 일반적인 관용구 , 옳은 일을 혼자 내버려 두지 마라. E : 거기 있네. ;) –
빈 목록으로 돌아 오기 전에 DisplayList()를 호출 할 수도 있습니다. ;) –
리스트의'tail' 노드를 추적하면 더 이상리스트를 탐색 할 필요가 없으므로 끝에있는 삽입이 훨씬 더 빠르고 효율적이됩니다 : void AddNode (int val) {Node * n = 새로운 노드(); n-> data = val; n-> 다음 = NULL; if (! head) {head = n; } if (tail) {tail-> next = n; } 꼬리 = n; DisplayList(); }' –