스택, 큐, 트리는 노드의 관리 방법이라고 할 수 있다.
노드를 추가하고 삭제하는 등의 관리를 할 때, 규칙의 차이를 스택, 큐, 트리라는 이름으로 분류한 것이다.
스택과 큐는 연결 리스트의 기능 중 리스트에 추가, 리스트에서 삭제 만 수정하면 된다.
void AppendNode(Node** Head, Node* NewNode)
{
Node* temp = (*Head);
if (temp == NULL) {
(*Head) = NewNode;
}
else {
while (temp->NextNode) {
temp = temp->NextNode;
}
temp->NextNode = NewNode;
}
}
void RemoveNode(Node** Head, int Data)
{
Node* temp = (*Head);
Node* temp1 = NULL;
if ((*Head) == NULL) {
printf("No Data\n");
return;
}
else {
while (temp->NextNode) {
temp1 = temp;
temp = temp->NextNode;
}
free(temp);
temp1->NextNode = NULL;
}
}
스택의 추가와 삭제 부분이다. 연결 리스트와 삭제 부분이 크게 다른데, 제일 마지막 노드를 찾아서 메모리할당을 해제하게 된다.
큐 역시 구현하기에는 무리가 없을 것이다.
'알고리즘 > 자료구조' 카테고리의 다른 글
이진 탐색 트리 구현 - 삭제 (0) | 2023.08.29 |
---|---|
이진 탐색 트리 구현 - 삽입 (0) | 2023.08.29 |
이진 탐색 트리 설명 (0) | 2023.08.24 |
트리 (0) | 2023.08.23 |
연결 리스트 (0) | 2023.08.23 |