프로그래밍

    [Python & Data Structure] Graph

    ✏️ Graph (그래프의 개념) 연결되어 있는 객체간의 관계를 표현하는 비선형 자료구조 가장 일반적인 자료구조의 형태이며, Tree 도 그래프의 특수한 경우이다. 하나의 점을 Vertex 라고 한다. 하나의 선을 Edge 라고 한다. Link 라고도 함. ✏️ Graph (용어) 비가중치 그래프 / 가중치 그래프 : 비가중치 그래프는 각 vertex 간의 연결 유무만을 판단한다. 가중치 그래프는 각 간선(edge)에 가중치를 부여한 형태로 예를 들면 edge에 비용을 부과하는 형식으로 가중치가 부과될 수 있다. 위의 그림은 가중치 그래프이다. 무향(undirected) 그래프 / 유향(directed) 그래프 : 무향 edge는 양방향의 의미를 가진다. (A,B)=(B,A) 로 순서에 의미를 가지지 않..

    [Python & Data Structure] Tree

    * 잘못된 내용이 있다면 댓글로 바로잡아주시면 감사드리겠습니다 ✏️ Tree (트리의 개념) 리스트나 스택, 큐로 가계도나 조직도를 구현할 수 있을까? 선형자료구조로는 계층형 구조를 표현하기 어렵다. 계층형 구조를 가진 문제를 해결하기 위한 자료구조가 '트리'이다. 무방향 그래프의 한 구조 하나의 데이터 뒤에 여러개의 데이터가 존재할 수 있는 비선형 구조이다. 계층적으로 표현되며 아래로만 뻗어나가기에 사이클이 없다 루트라는 하나의 꼭짓점 데이터를 시작으로 여러개의 데이터를 간선으로 연결한다. 트리구조는 각 데이터를 노드라고 하며, 두개의 노드가 상하계층으로 연결되면 부모/자식 관계를 가진다. 자식이 없는 노드는 leaf node라고 부른다 Tree는 깊이와 높이, 레벨등을 측정할 수 있다. ✏️ Tree..

    [Python & Data Structure] Queue, Stack, Linked List

    ✏️ Queue (큐의 개념) 먼저 들어간 데이터가 먼저 나오는 FIFO(First In First Out) 혹은 LILI(Last In Last Out)을 특징으로 하는 자료구조다.데이터가 입력된 순서대로 처리되어야할 떄 주로 사용이 된다. 정해진 한 곳(top)을 통해서 insert, delete가 이루어지는 stack과 달리 Queue는 한쪽 끝(rear)에서 insert, 다른 쪽 끝(front)에서 delete작업이 이루어진다. rear에서 이뤄지는 삽입연산을 enQueue, front에서 이뤄지는 삭제연산을 dequeue라고 한다. 활용처: 프로세스관리, BFS 구현, Cache 구현 ✏️ Queue (큐의 사용과 구현) Python은 queue라이브러리를 제공한다. 하지만 list를 이용해 ..