728x90
연결리스트 순회하기
Node *get_node(int index)
{
if (index < 0)
return NULL;
Node * p = head;
for (int i = 0; i < index && p!=NULL; i++)
p = p->next;
return p;
}
연결리스트의 index번째 위치에 새로운 노드를 만들어서 삽입한다.
void add(int index, ...)
int add(int index, char *item)
{
if (index < 0)
return 0;
if (index == 0)
{
add_first(item);
return 1;
}
Node *prev = get_node(index - 1);
if (prev != NULL)
{
add_after(prev, item);
return 1;
}
return 0;
}
index번째 노드를 삭제하고, 그 노드에 저장된 데이터를 반환.
char *remove(int index,...)
Node *remove(int index)
{
if (index < 0)
return NULL;
if (index == 0)
return remove_first();
Node *prev = get_node(index - 1);
if (prev == NULL)
return NULL;
else
{
return remove_after(prev);
}
}
'알고리즘, 자료구조 > 개념정리' 카테고리의 다른 글
[C][강의정리] 큐 개념과 구현 (1) (0) | 2022.07.14 |
---|---|
[C][강의정리] 연결 리스트 개념과 기본 동작들 (4) (0) | 2022.07.12 |
[C][강의정리] 연결 리스트 개념과 기본 동작들 (3) (0) | 2022.07.12 |
[C][강의정리] 연결 리스트 개념과 기본 동작들 (2) (0) | 2022.07.12 |
[C][강의정리] 연결 리스트 개념과 기본 동작들 (1) (0) | 2022.07.12 |