알고리즘/자료구조

스택, 큐

Aif 2023. 8. 23. 15:06

스택, 큐, 트리는 노드의 관리 방법이라고 할 수 있다. 

 

노드를 추가하고 삭제하는 등의 관리를 할 때, 규칙의 차이를 스택, 큐, 트리라는 이름으로 분류한 것이다.

 

스택과 큐는 연결 리스트의 기능 중 리스트에 추가, 리스트에서 삭제 만 수정하면 된다.

 

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