DataStructure 4

자바스크립트 12. 자료구조(Data Structure) - 그래프 (graph)

오늘은 자료구조 그래프에 대해서 기록해보자! 📕그래프(Graph) 개념 그래프는 마치 지하철 노선도와 비슷한 것같다. 하나의 정점(vertex 또는 노드)에서 다른 vertex들과 연결이 되어있다. 정점은 방향성이 없을 수도 있고, 한 방향을 가질 수도 있고, 양방향을 가질 수 있다. 그리고 자기 자신을 가르키는 정점가 존재하기도 한다. 그래서 정점들의 관계를 나타내고 표현이 가능한 자료 구조이다. 트리는 부모와 자식의 관계지만, 그래프는 순환과 비순환으로 나뉜다. 📍그래프(Graph) 메소드 이번 코드스테이츠 스프린트에서 구현한 메소드는 총 6가지 이다. addNode(node) - 그래프에 노드를 추가합니다. addEdge(fromNode, toNode) - fromNode와 toNode사이의 간선을..

자바스크립트 12. 자료구조(Data Structure) - 해시테이블 (Hash Table)

자료구조 4번째 해시테이블을 기록해보자! 📕해시테이블(Hash Table)의 개념 해시 테이블(Hash Table)은 입력받은 키값을 해시함수에 돌려서 반환받은 해쉬코드는 배열의 인덱스로 데이터에 접근하는 자료구조 입니다. 사진을 보면 이해하기가 더 쉽다. 주어지는 key는 해시함수에 들어가게 된다. 해시 함수는 받은 키를 해쉬 코드로 바꾸어주는 역할을 한다. 그렇게 키는 해시 함수를 지나서 해시 코드가 된다. 해시 코드는 인덱스 처럼 저장소(bucket)에서 값을 찾고 접근을 할 수 있게 된다. 이때 접근, 삭제, 검색 등이 가능해진다. 👨🏻‍💻해시테이블 활용 예시 핸드폰 연락처 (이름 검색을 하면 -> 해당번호가 나온다) DNS 확인작업 (웹사이트 주소를 입력하면, 컴퓨터는 그 주소를 IP주소로 변환..

자바스크립트 12. 자료구조(Data Structure) - 큐(Queue)

계속해서 이어지는 자료구조 기록! 오늘은 큐! 순간 이미지를 보면서 얼마나 맛집일까 궁굼증이 들긴 하지만, 각설하고 오늘은 큐(Queue)에 대해서 기록해보자. ✅큐(Queue)의 개념 큐는 사람들이 음식점이나 놀이기구를 타기위해 기다리는 줄을 생각하면 이해하기 쉽다. 맛집 오픈 10분 전에 가게앞에서 부터 한사람 한사람 줄을 세우는 모습을 상상해보면 좋을 것 같다. 물론 새치기하는 사람들은 없다고 가정한다.(진짜 새치기 하는 인간들.. ㅂㄷㅂㄷ) 맛집이 오픈이 되서 손님들이 들어갈 때, 당연히 먼저 온 사람이 먼저 들어가서 자리를 안내받고 앉게 되고, 주문을 하게된다. 큐도 마찬가지 이다. 먼저 들어간 데이터가 먼저나오는 FIFO(First In First Out) 선입선출 구조로 되어있다. 만약에 맛..

자바스크립트 12. 자료구조(Data Structure) - 스택(Stack)

지금부터 자료구조에 대해서 기록해보자! 시작은 스택! 스택(stack)의 개념 스택은 겹겹이 쌓여 있는 모습을 생각하면 이해에 많은 도움이 된다. 위에 있는 사진을 보면서 생각을 해보자! 돌탑을 쌓기 위해서는 가장 먼저 아랫돌을 놓고 하나씩 쌓아 올려야 한다. 만약에 다 쌓고 나서 아랫돌을 꺼내고 싶을 때는 어떻게 해야할까? (제발 발로 차거나 손으로 밀쳐서 무너뜨린 후에 아랫돌을 취한다 이런생각은 하지 마시길....) 아랫돌을 가져 갈 수 있도록 위에있는 돌을 하나씩 빼가면 된다. 돌탑을 만들고 돌을 빼는 과정을 살펴본다면. 먼저들어 온것이(아랫돌) 가장 나중에 나갈 수 있고, 늦게 들어오는 것(가장 윗돌)이 먼저나갈 수 있는 구조이다. 스택이 이렇다. 마지막에 들어온 것이 먼저나가는 LIFO(Last..