쌓고 쌓다
더블 링크드 리스트 삽입 본문
노드 설정
struct Node
{
int data;
Node* prev;
Node* next;
};
GetNewNode 함수
Node* GetNewNode(int x)
{
Node* tmp = (Node*)malloc(sizeof(Node));
tmp->data = x;
tmp->prev = NULL; tmp->next = NULL;
return tmp;
}
전역 변수로 head 존재함.
Node* head;
Head에 삽입 ( 맨 앞에 )
void InsertAtHead(int x)
{
Node* tmp = GetNewNode(x);
if (head == NULL)
{
head = tmp;
return;
}
head->prev = tmp;
tmp->next = head;
head = tmp;
}
Tail에 삽입 ( 맨 뒤에 )
void InsertAtTail(int x)
{
Node* tmp = GetNewNode(x);
if (head == NULL)
{
head = tmp;
return;
}
Node* p = head;
while (p->next != NULL)
{
p = p->next;
}
p->next = tmp;
tmp->prev = p;
}
'알고리즘 > 자료구조' 카테고리의 다른 글
스택 구현 (배열, 리스트) (0) | 2022.10.20 |
---|---|
싱글, 더블 링크드 리스트 출력(반복문, 재귀) (0) | 2022.10.06 |
싱글 링크드 리스트 뒤집기 (0) | 2022.10.04 |
싱글 링크드 리스트 삽입 3가지 방법 (0) | 2022.09.28 |
[자료구조] AVL 트리와 탐색 (0) | 2022.06.04 |
Comments