반응형
Q>
연결 리스트의 중간에 node를 추가하거나 삭제하는 코드는 어떻게 작성할 수 있을까요?
A>
노드가 목록에 있는지 확인하고 존재하는 경우 새 노드의 다음 포인터를 다음 노드의 다음 포인터가 있는 다음 노드를 가리킨다.
node* insert_before(node *head, int data, node* nxt)
{
if(nxt == NULL || head == NULL)
return NULL;
if(head == nxt)
{
head = prepend(head,data);
return head;
}
/* 첫 번째 노드부터 시작하여 이전 노드를 찾습니다. */
node *cursor = head;
while(cursor != NULL)
{
if(cursor->next == nxt)
break;
cursor = cursor->next;
}
if(cursor != NULL)
{
node* new_node = create(data,cursor->next);
cursor->next = new_node;
return head;
}
else
{
return NULL;
}
}
https://www.boostcourse.org/cs112
모두를 위한 컴퓨터 과학 (CS50 2019)
부스트코스 무료 강의
www.boostcourse.org
반응형
'C > 부스트코스' 카테고리의 다른 글
[부스트코스]자료구조 퀴즈 6 (0) | 2021.02.11 |
---|---|
[부스트코스]자료구조 퀴즈 5 (0) | 2021.02.11 |
[부스트코스]자료구조 퀴즈 3 (0) | 2021.02.10 |
[부스트코스]자료구조 퀴즈 2 (0) | 2021.02.10 |
[부스트코스]자료구조 퀴즈 1 (0) | 2021.02.09 |