자료구조 3

[c언어] 스택(Stack)

안녕하세요 업글입니다! 이번 포스팅에서는 스택에 대해서 설명드리겠습니다. 스택에 대한 설명 스택은 입력된 데이터들을 저장하고 저장된 순서와 반대로 데이터를 출력하는 자료구조입니다. 큐의 가장 큰 특징은 먼저 들어온 데이터는 가장 마지막에 나가는 것입니다. 이것을 후입선출 또는 LIFO이라고 주로 표현합니다. 쉽게 예를 들어서 접시 쌓기를 생각하시면 될 것 같습니다. 가장 먼저 정리한 접시가 가장 아래에 쌓여있고 가장 최근에 정리한 접시가 가장 위에 쌓여있기 때문에 가장 최근 쌓은 접시를 가장 먼저 사용하게 되는 것과 같이 데이터가 관리되게 됩니다. 스택 또한 큐와 동일하게 배열과 링크드리스트를 사용하여 구현할 수 있습니다. 스택 사용 이유 스택은 dfs(depth first search)와 같은 알고리즘..

프로그래밍 2021.01.14

[c언어] 링크드리스트(Linked List)

안녕하세요 업글입니다! 이번 포스팅에서는 링크드리스트에 대해서 설명드리겠습니다. 링크드리스트에 대한 설명 각 노드끼리 연결되어 자료를 관리하는 자료구조입니다. 포인터를 통해서 노드에서 다른노드를 가르킴으로써 노드끼리 연결할 수 있습니다. 그러므로 각 노드에는 노드를 가르킬 수 있는 포인터를 포함하고 있습니다. 링크드리스트를 이해하기 위해서는 포인터, 힙, 동적 메모리 할당에 대한 이해가 필요합니다. 각각에 대해서 간단하게 설명하도록 하겠습니다. 1) 포인터 포인터란 메모리의 주소를 저장할 수 있는 변수입니다. 변수를 선언 시 해당 변수는 메모리의 어떠한 영역에 위치하게 됩니다. 이 때 어떤 영역에 위치하는 지 표현 하는 것이 주소입니다. 각 변수는 유일한 주소를 가지게 됩니다. 포인터가 주소를 저장하는 ..

프로그래밍 2021.01.13

[c언어] 큐(Queue)

안녕하세요 업글입니다! 이번 포스팅에서는 큐에 대해서 설명해보도록 하겠습니다. 자료구조 중 하나인 큐(Queue)는 많은 분들이 알고계시고 프로그래밍을 막 시작하신 분들도 한번쯤은 들어봤을만한 대표적인 자료구조 중 하나라고 생각합니다. 큐에 대한 설명 큐는 입력된 데이터들을 순서대로 저장하고 순서대로 출력하는 자료구조입니다. 큐의 가장 큰 특징은 먼저 들어온 데이터는 먼저 나가는 것입니다. 이것을 선입선출 또는 FIFO이라고 주로 표현합니다. 쉽게 예를 들어서 맛집에서 줄서기를 생각하시면 될 것 같습니다. 먼저 온 사람이 맛집에 먼저 들어가고 나중에 온 사람이 나중에 들어가는 것과 같이 데이터가 관리되게 됩니다. 큐 사용 이유 큐는 bfs(breath first search)와 같은 탐색 알고리즘 등에서..

프로그래밍 2021.01.01