이진Tree는 Tree구조 중 Node가 Left와 Right만 갖는 Tree를 의미합니다. Tree에 대한설명은.... (추후 Tree 페이지 추가후 삽입예정입니다) Binary Tree는 각 Node마다 Left, Right를 구분하며, Left 와 Right는 각각 다른 Node를 Pointing하는 구조를 가지고 있습니다. 이때 Node C처럼 Left와 Right가 모두 빈 Node를 Leaf Node라고 합니다. 이러한 이진 Tree를 구현하는 방법은 Array를 이용한 구현 방법과, Node를 이용한 구현방법이 있습니다. 두가지 방법 모두 Tree를 구현할 수 있지만, 완전 이진 Tree가 아니면 Array를 활용할 경우 불필요한 Memory가 사용됩니다 이러한 Binary Tree는 Bin..
연결List에 대해서 포스팅하면서, 단일연결List는 Next Index의 접근은 용이하지만, 이전 Index로 가는것은 어렵다고 했습니다. 이러한 문제점을 개선하기 위해서 고안된 개선된 Connect List중 원형연결 List, 이중연결 List가 있습니다. 1. 원형연결 List 기존 단일연결list의 마지막 Index의 Node는 항상 Next Node가 Null값을 갖게 됩니다. 이때 Data의 여부를 Search할 경우, 지속적으로 "Next Node가 Null인가?" 를 검사하게 됩니다. 하지만 마지막 Index의 Node를 첫번째 Index Node를 Pointing 하게 함 으로써 프로그램의 성능 향상을 도모할 수 있습니다. 파이썬으로 구현된 원형 연결 List입니다. class node..
일반적인 Array가 있다고 해봅시다. 일반적으로 Array의 순서는 메모리의 물리적인 순서와 동일합니다. 이때, Array 중간에 Element을 삽입하기 위해선 삽입된 위치 이후는 전부 이동을 해 줘야합니다. 연결리스트는 중간에 Element를 삽입할 때 발생하는 Memory의 읽기/쓰기를 최소화 하는 자료구조입니다. Node를 생성하고, 해당 Node의 Next Node를 Pointing 하게하는 자료구조 입니다. 위 이미지를 보면 알수있지만, 연결List의 순서는 Mem주소의 물리적인 순서와 무관합니다! 덕분에 연결List를 활용할 경우, Element의 삭제 & 추가에 따른 Memory 읽기/쓰기를 최소화 할 수 있습니다. 추상화된 이미지를 보면, 마치 전화선 연결하는 것 처럼 서로의 연결을 바..
지난시간에 Queue 자료구조는 Data를 지울 경우 Queue의 Max Capacity가 감소한다고 했습니다. teus-kiwiee.tistory.com/24 Queue Queue는 Array를 활용한 사용자 자료구조 중 하나입니다. Queue의 원리는 First In First Out(FIFP) 가장 먼저 들어온 Element가 가장 먼저 나간다 입니다. 정수기의 종이컵 / 놀이공원 대기열을 생각하면 쉽습 teus-kiwiee.tistory.com Circular Queue는 이러한 단점을 극복하기 위해서 고안된 특이한 Case의 Queue라고 할 수 있습니다. 원형Queue는 선형Queue의 Input과 Output이 서로 붙어있는 구조라고 할 수 있습니다. 이렇게되면 FIFP의 원칙을 유지하되, ..
Queue는 Array를 활용한 사용자 자료구조 중 하나입니다. Queue의 원리는 First In First Out(FIFP) 가장 먼저 들어온 Element가 가장 먼저 나간다 입니다. 정수기의 종이컵 / 놀이공원 대기열을 생각하면 쉽습니다. Queue 역시 자료구조이기 때문에, Element의 Add와 Delete가 존재합니다. 하지만 FIFP의 원칙 때문에 Delete는 Output에서만, Add는 Input 에서만 가능합니다. 이때 Delete부분을 보면, Output Pointer가 움직이면서 첫번째 위치는 더이상 Pointing하지 못하는 것을 알 수 있습니다. 때문에 선형 Queue의 경우 Queue가 채워진 후 삭제되면 Capacity가 같이 감소하는 단점이 있습니다. Python으로 구..
Stack은 자료구조에서 가장 처음 배우는 자료구조입니다. Stack은 말 그대로 데이터를 쌓는 자료구조라고 할 수 있습니다. 쌓아올린 탑의 아래부분을 건드리면 탑이 무너지죠? Stack또한 마찬가지 입니다. Stack은 오직 최 상당의 Element만 접근, 삭제, 추가가 가능합니다. 이러한 Stack의 특수성을 고려해 Element의 추가는 push, Element의 제거 및 반환은 pop 이라고 합니다. 이때 Stack에 Pointer라는것이 있는것을 알 수 있습니다. 모든 자료구조는 Maximum Size가 있기 때문에, Element의 추가, 삭제에 따라 Pointer가 움직이고 이 Pointer의 위치를 통해서 현재 Stack의 상태를 확인할 수 있습니다. Python으로 구현된 Stack 자..
- Total
- Today
- Yesterday
- 사칙연산
- prime number
- 이분탐색
- 코딩테스트
- 컴퓨터그래픽스
- git
- 병렬처리
- AVX
- hash
- Search알고리즘
- Sort알고리즘
- 알고리즘
- GDC
- 분할정복
- stack
- 프로그래머스
- C++
- heap
- Greedy알고리즘
- 동적계획법
- Python
- 완전탐색 알고리즘
- 자료구조
- SIMD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |