IT Skils/자료구조
-
[파이썬 | 자료구조] 힙(Heap)IT Skils/자료구조 2021. 3. 6. 19:20
지난번에는 트리(Tree)에 대해 알아보았습니다. 이번에는 힙(Heap)에 대해 알아보겠습니다. 힙 구조 힙은 최대값과 최소값을 빠르게 구하기 위해 고안된 완전 이진 트리(Complete Binary Tree)이다. 최대값을 구하기 위한 구조(최대 힙, Max Heap)와 최소값을 구하기위한 구조(최소 힙, Min Heap)으로 분류한다. (최대 힙, Max Heap)-각 노드의 값은 해당 노드의 자식노드가 가진 값보다 크거나 같다. (최소 힙, Min Heap)-각 노드의 값은 해당 노드의 자식노드가 가진 값보다 크거나 작음 힙과 이진 탐색 트리의 공통점과 차이점 공통점: 힙과 이진 탐색 트리는 모두 이진 트리임 차이점: 힙은 각 노드의 값이 자식 노드보다 크거나 같음(Max Heap의 경우) 이진 탐..
-
[파이썬 | 자료구조] 트리(Tree)IT Skils/자료구조 2021. 3. 5. 20:59
안녕하십니까 ☺️ 지난번에는 해쉬 테이블(Hash_Table)를 알아보았습니다..! 이번는 트리(Tree)을 알아보겠습니다. 트리 구조 트리란 Node와 Branch를 이용한 데이터 구조입니다. 모양은 실제 트리 모양과 흡사합니다. 트리 용어 Node: 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node: 트리 맨 위에 있는 노드 (최상위노드) Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node: 자식노드의 이전 레벨에 연결된 노드 (부모노드) Child Node: 부모노드의 다음 레벨에 연결된 노드 (자식노드) Leaf Node (Terminal Node): 자식노..
-
[파이썬 | 자료구조] 해쉬테이블(Hash Table)IT Skils/자료구조 2021. 2. 18. 00:04
안녕하세요~ ☺️ 지난 시간에는 더블링크드 리스트(Double Linked List)를 알아보았습니다..! 이번 시간에는 해쉬 테이블(Hash Table)을 알아보겠습니다. 해쉬 테이블 구조 해쉬테이블이란 키(Key)에 데이터(Value)를 저장하는 데이터 구조입니다. 아래 그림과 함께 해쉬 테이블을 알아보기 위한 용어를 정리해보겠습니다. 해쉬(Hash): 임의 값을 고정 길이로 변환하는 것 해쉬 테이블(Hash Table): 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수(Hashing Function): Key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값(Hash Value) 또는 해쉬 주소(Hash Address): Key를 해싱 함수로 연산해서, 해쉬 값을..
-
[파이썬 | 자료구조] 링크드리스트(Linked List)IT Skils/자료구조 2021. 2. 15. 22:35
안녕하세요~ ☺️ 지난 시간에는 반드시 알아 두어야 할 자료구조 스택(Stack)를 배웠습니다. 이번 시간에는 대표적인 데이터구조 링크 드리스트(Linked List)를 배워보겠습니다. 링크드 리스트의 구조 링크드리스트는 말 그대로 연결리스트이다. 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조이다. 링크드리스트는 노드와 포인터로 이루어져있습니다. 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 즉 이러한 형태 한공간(Node)을 두공간(Data와 Next)으로 분리시켜 데이터를 담을 수 있는 Data공간과 다음 노드를 가리킬 수 있는 Next공간을 연결시킨 형태라고 볼 수 있다..! 여기서 다음 노드를 가리 킬 Node가 없으면..
-
[파이썬 | 자료구조] 스택(Stack)IT Skils/자료구조 2021. 2. 15. 20:09
안녕하세요~ ☺️ 지난 시간에는 대표적인 자료구조중 하나인 큐(Queue)를 배웠습니다. 이번 시간에는 반드시 알아 두어야 할 자료구조 스택(Stack)을 배워보겠습니다. 스택구조 스택구조는 간단하게 책을 쌓아올리는 행위라고 보시면 됩니다. 예를들어 책을 바닥에 하나씩 쌓아올린다고 해보죠 책을 다 쌓았으면 처음에 두었던 책은 가장마지막에 빼내고 마지막에 쌓아올렸던 책이 가장 먼저 빼지겠죠?? 이를 자료구조에서는 LIFO(Last In, Fisrt Out)방식이라고 합니다. 자 이해를 돕기위해 먼저 스택을 생성해보겠습니다. 해당 스택에서는 가장 처음에 들어간 데이터는 40이고 가장 마지막에 들어간 데이터는 79입니다. 여기서 데이터(53) 하나를 추가해보겠습니다. 당연히 79위에 쌓이겠죠?? 이때 추가된 ..
-
[파이썬 | 자료구조] 큐(Queue)IT Skils/자료구조 2021. 2. 15. 15:57
안녕하세요~:) 지난시간에 기본적인 python 배열과 for문을 배웠습니다. 오늘은 대표적인 데이터구조 큐(Queue)를 배워보겠습니다. 큐의 구조 큐구조는 간단하게 줄을 서는 행위라고 보시면 됩니다. 예를 들어 공연장에 입장하기위해 줄을 섭니다. 줄을 먼저 선 사람이 제일 먼저 입장하겠죠?? 이와같은 방식으로 이를 자료구조에서는 FIFO(First In First Out)방식이라고 합니다. 자 이해를 돕기위해 큐를 먼저 생성해보겠습니다. 해당 큐를 보았을 때 젤 먼저 입력된 데이터는 25이고 그뒤로 79, 42, 41, 93이 추가된 배열의 형태로 볼 수 있습니다. 여기서 데이터(24) 하나를 더 추가를 해보겠습니다. 이때 추가된 데이터는 배열의 마지막번째에 추가가 되었습니다. 이러한 추가방식을 자료..