Stack (2) 썸네일형 리스트형 자료구조 - Linked List(Stack & Queue) 배열을 사용하여 구현을 할 경우 해당 배열의 크기를 미리 정해줘야 하기 때문에 만약 사전에 설정한 크기보다 큰 영역이 필요할 경우 문제가 생기고, 사전에 너무 큰 영역을 할당한다면 메모리 효율이 떨어지게 된다. 따라서 Linked List를 사용하면 이러한 문제를 해결할 수 있는데 Linked list는 필요에 따라 메모리를 할당하고 해제할 수 있어서, 배열과 달리 크기가 고정되어 있지 않는다. 그리고 Linked list에서 노드의 삽입과 삭제는 단순히 포인터를 변경하면 되기 때문에 기존 배열에서 삽입이나 삭제를 위해 요소들을 이동시켜야 하는 부분을 없앨 수 있다. 또한 Linked list는 필요한 데이터만큼만 메모리를 사용하여 배열과 달리 사용하지 않는 메모리 공간이 생기지 않아 메모리 사용이 효율.. 자료구조 - Stack Stack은 말 그대로 각각의 원소들을 쌓아서 저장하는 방식이다. stack의 특징은 원소의 추가와 삭제가 stack의 가장 위에서만 발생한다는 것인데 결과적으로 가장 마지막에 추가된 원소가 가장 먼저 빠지기 때문에 LIFO(last in first out)구조를 가진다. Stack의 헤더를 다음과 같이 짜볼 수 있다. template class StackType { int top; ItemType items[MAX_ITEMS]; public: StackType(); void Push(ItemType item); void Pop(); void ReplaceItem(ItemType oldItem, ItemType newItem); bool IsFull() const; bool IsEmpty() const;.. 이전 1 다음