사전적 의미의 자료구조는 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다. 또한 데이터에 편리하게 접근, 변경하기 위해 데이터를 저장하거나 조직하는 방법을 말한다. 문제해결을 위해 여러 형태의 자료구조가 활용되며 그에 따라 다양한 알고리즘이 사용된다.
자료구조는 크게 선형과 비선형으로 나뉜다.
선형 자료구조의 경우 데이터가 일렬로 나열되어 있는 것을 의미한다.
비선형 자료구조의 경우 특정한 형태를 띄는 것을 의미한다.
스택(Stack)
스택은 박스쌓기에 비유할 수 있다. 아래에서부터 위로 차곡차곡 쌓은 후 데이터를 삭제하기 위해서는 위에서부터 먼저 제거해야 한다. 이런 구조를 선입후출 혹은 후입선출 구조라고 한다.
큐(Queue)
큐는 대기줄과 같이 먼저 온 사람이 먼저 들어가는 것처럼 선입선출 구조를 가지고 있다.
연결리스트(Linked List)
연결 리스트는 동적 데이터 구조이다. 목록의 노드 수는 고정되어 있지 않으며 필요에 따라 늘리거나 줄일 수 있다. 노드가 다음 노드로 아무것도 가리키지 않으면 리스트의 끝이다.
트리(Tree)
부모 노드 밑에 여러 자식 노드가 연결되고, 자식 노드가 다시 부모 노드가 되어 각각의 자식 노드에게 연결되는 재귀적인 형식의 자료구조
그래프(Graph)
그래프는 노드(Node)와 간선(Edge)로 표현되며 이때 노드를 정점(Vertex)이라고도 한다.
https://afteracademy.com/blog/introduction-to-data-structure