본문 바로가기

CS23

그래프 지하철 노선이나 SNS 인맥 관계, 최근 딥러닝 분야에서의 복잡한 데이터 흐름 등은 선형 자료구조는 물론이고 트리로도 표현하기 쉽지 않습니다 이들은 모두 다양한 객체들이 서로 복잡하게 연결된 구조를 갖는데 , 그래프는 이런 관계를 표현할 수 있는 훌륭한 논리적 도구입니다. 사실 선형 자료구조나 트리도 그래프로 표현할 수 있으므로 그래프의 한 종류로 볼 수 있고, 따라서 그래프는 가장 일반화된 자료구조입니다. 그래프는 정점(vertex)과 간선(edge)의 집합으로 구성되는데, 그래프 G는 G = (V, E)와 같이 정의됩니다. 이때, V는 정점들의 집합을 , E는 간선들의 집합을 의미합니다. 정점은 객체(object)를 간선은 객체 간의 관계를 표현하는데, 정점 D와 E를 연결하는 간선은 (D, E)와 .. 2024. 6. 12.
트리 이름과 비슷하게 나무를 닮은 자료구조입니다 나무는 뿌리에서부터 가지들이 뻗어 나와서 분기되고 가지 끝에는 잎이 달리듯이 트리라는 자료구조는 계층적인 관계를 한 자료의 표현에 매우 유용하게 사용됩니다. 예를 들어 회사의 조직 체계를 트리로 표현하면 사장은 뿌리에 해당하고, 사장 밑에 있는 각 부서의 부장은 뿌리에서 뻗어 나온 가지에 해당합니다.  나무의 달린 잎들의 순서를 매기기 어려운 것처럼 트리에 저장된 자료도 일렬로 나열하기 어렵고, 따라서 트리는 비선형 구조 입니다. 컴퓨터에서도 계층적인 관계를 표현하기 위해 트리가 다양하게 활용됩니다. 운영체제에서의 폴더 구조 표현, 효율적인 탐색을 위해 탐색트리, 우선순위 큐를 위한 힙 트리, 인공지능에서 의사결정 구조를 표현하기 위한 결정트리 등의 트리의 응용.. 2024. 6. 7.
리스트 생활에서 가장 많이 사용하는 자료구조중 하나 입니다.  리스트는  자료들이 차례대로 나열된 선형 자료구조 입니다 이때 각 자료는 반드시 순서 또는 위치를 갖습니다 스택이나 큐,덱 에서 자료의 접근이 전단이나 후단으로 제한되는 것과 달리 리스트에서는 어떤 위치에서도 자료를 넣거나 꺼낼 수 있습니다.따라서 가장 활용이 자유로운 선형자료구조 입니다.리스트의 특징중 하나는 중간에 자료를 삽입하면 이후 모든 자료가 뒤로 한 칸 씩밀립니다 리스트와 비슷한 개념으로 집합(set) 이 있습니다. 리스트와 달리 set은 원소의 중복을 허용하지 않고 , 특히 원소들 사이에 순서가 없습니다 따라서 set 은  자료들 순서대로 나열할 수 있는 선형 자료구조로 볼수없습니다  명령어설명insert(pos,e)pos 위치에 새로운.. 2024. 5. 21.
큐 (queue) 계산대의 대기열을 떠올리면 쉽게 이해할 수 있는 자료구조입니다. 선형 구조 이며 선입선출(FIFO)의 특성을 갖는 자료구조입니다. 즉 A, B, C, D를 순서대로 삽입하면 꺼낼(삭제) 때도 같은 순서인 A, B, C로 나옵니다. 큐는 스택과 비슷해 보이지만 삽입과 삭제 연산이 같은 쪽이 아니라 서로 다른 쪽에서 일어납니다. 삽입이 일어나는 곳을 후단(rear)라고 하고 삭제가 일어나는 곳을 전단(front)이라고 부릅니다. 큐의 추상 자료형 큐에 저장하는 자료애는 트별한 제한이 없습니다. 연산들도 스택과 유사합니다. 삽입과 삭제가 역시 가장필수적인 연산이고, 공백이나 포화 등의 상태 검사 연산들도 필요합니다. 큐의 추상 자료형은 다금과 같이 정의할 수 있습니다 연산 설명 init(): 큐를 초기화 en.. 2024. 4. 6.