728x90
* 연경리스트의 맨 앞에 새로운 노드 삽입하기
(1) 새로운 노드를 만들고 추가할 데이터를 저장한다. malloc 사용
(2) 새로운 노드의 next필드가 현재의 head노드를 가리키도록 한다.
(3) 새로운 노드를 새로운 head노드로 한다.
Node *tmp = (Node *)malloc(sizeof(Node));
tmp->data = "Ann";
tmp->next = head;
head = tmp;
첫번째 노드를 가리키는 포인터 head가 전역변수인 경우
void add_first(char *item)
{
Node *temp = (Node *)malloc(sizeof(Node));
temp->data = item;
temp->next = head;
head = temp;
}
첫번재 노드를 가리키는 포인터 head가 전역변수가 아닌 경우
방법 1.
void add_first(Nodr **ptr_head, char *item)
{
Node *tmp = (Node *)malloc(sizeof(Node));
temp->data = item;
temp->next = *ptr_head;
*ptr_head = tmp;
}
// main
int main()
{
add_first(&head, item_to_store);
}
방법 2.
Node *add_first(Node *head, char *item)
{
Node *temp = (Node *)malloc(sizeof(Node));
temp->data = item;
temp->next = head;
return temp;
}
int main()
{
head = add_first(head, item_to_store);
}
'알고리즘, 자료구조 > 개념정리' 카테고리의 다른 글
[C][강의정리] 연결 리스트 개념과 기본 동작들 (5) (0) | 2022.07.12 |
---|---|
[C][강의정리] 연결 리스트 개념과 기본 동작들 (4) (0) | 2022.07.12 |
[C][강의정리] 연결 리스트 개념과 기본 동작들 (2) (0) | 2022.07.12 |
[C][강의정리] 연결 리스트 개념과 기본 동작들 (1) (0) | 2022.07.12 |
[C][강의요약] 스택의 구현 (3) (0) | 2022.07.11 |