컴퓨터 수업/자료구조(9)
-
자료구조_중간고사_준비
QUIZ reference type은 무조건 lhs에 있다. ex) p = &a -> a는 무조건 주소연산자 new연산자는 어떤 특정 메모리에 heap 메모리를 할당하기도 하지만, 해당 포인터가 이미 가르키는 메모리주소가 있다면 해당 메모리를 다른곳으로 치우고 heap memory를 할당한다. 따라서 정리하자면 px = new int; 에서 new는 px에 다른 임의의 값을 집어넣고 (다른 주소를 대입하고(이는 무조건 heap 주소이다.)), 해당 주소에 메모리를 4byte할당한다. 마찬가지로 delete px; 에서 delete는 px가 가르키는 메모리를 해제하고 해당 포인터를 다른곳으로 치워버린다. c++에서 call by reference는 reference type의 parameter를 가지는 함..
2020.10.20 -
Linked-Node.
원래 Linked-list가 더 어울리는 말이지만, 내가 공부한 바로는 Linked-Node라고 명명하는것이 현 내 상황에서는 더 어울리는 것 같다. 먼저 Array-based 와 Linked 의 비용적인 문제를 살펴보자면 (여기서도 Array-based와 Linked-list라고 표현하지 않고 Linked라고 표현했다.) 보다시피 Linked-Data-structure는 자료형이 늘어날때마다 Byte가 증가하는 것을 관찰 할 수 있다. 따라서, ItemType의 크기가 작을수록 Array-based를 지향하고, ItemType의 크기가 클 수록 Linked-based를 지향하는것이 좋다. Node란 무엇인가? ★ Node란 데이터 필드로 value와 next라는 포인터변수를 가진 객체이다. 이 노드라는..
2020.10.16 -
큐 Queue
Category: 1. 큐란 무엇인가? 2. 메소드와 필드에는 무엇이 있는가? 3. 구현(implementation)문제에 의한, 2가지 구현 방법 - Circular design - length 추가 4. 실제 구현 5. 추가문제 1.큐란 무엇인가? 스택의 LIFO(후입선출 ,선입후출, Last-in-Last-out)와 달리 큐는 FIFO(선입선출, First-in-first-out)이다. 젠가박스를 생각해보자, 한쪽만 뚫려있는 젠가박스에 젠가를 넣고 빼는것을 상상해보면, 후입선출, 즉 스택이다. 양쪽이 뚫려있는 젠가박스에 젠가를 넣고 반대쪽으로 빼는것을 생각해보면, 선입선출, 즉 큐다. 롤 클라이언트 대기열도 위와같은 스택의 자료구조형을 가진다. 2. 메소드와 필드에는 무엇이 있는가? 필드: rear..
2020.10.07 -
리스트와 스택의 차이
Category: 리스트와 스택의 차이점 어떤 자료구조를 사용할 것인지 APP을 통해 예시를 생각해보기 1. 리스트와 스택의 차이점 리스트는 아이템들의 사이에 뭔가 끼워 넣을 수 있다. 하지만 그 index에는 접근할 수 없다. 스택은 아이템들의 사이에 뭔가 끼워넣기가 어렵다. 즉 stack으로 존재하는 자료구조를 scope 하려면 전부 다 뽑아내야 한다. 2. 어떤 자료구조를 사용할 것인지 APP을 통해 예시를 생각해보기 왜 스택으로 풀어야 할까? 스택은 순서가 존재하며, 서로 상충(balance)하여 소거될 수 있는 자료형의 buffer로써 기능할 수 있다. 그렇다면 왜 하필 스택일까? 리스트는 안될까? 리스트로 이 문제를 풀었다고 생각해보면, 먼저 Top이라는 메소드를 구현해야 하고, push라는 ..
2020.10.05 -
Big O notation
@어려운 말은 차치하고 n이 클수록, 동작하는데 오래 걸리는 코드라 생각하자. @이때, BigO는 N개의 아이템을 K(최악의 상황)번 탐색 했을 때의 lhs가 1이 된다는 것에서 K는 무엇이 되는가 = 최악의 상황일때, K는 어떻게 표현되는가. @rule 생성된 시간복잡도 식에서 상수와 최고차항이 아닌 것은 제외한다. @예시를 통한 이해 1. for문 for(int i=0;i K = N-1 O(N) 3. binary search 1번의 operation시, N은 N/2로 줄어든다. 2번의 operation시,N은 N/2 * 1/2 로 줄어든다. K번의 operation시 N은 N/2 * (1/2)^K로 줄어든다. 따라서 양변에 로그를 씌우면 K = log2(N)이다. O(log2(N)) ###추가 1번시..
2020.09.15 -
List
@Category -List의 정의 -List의 종류 -ADT와 List, 그 opeartion과 domain -UnsortedType -SortedType -Big (o) 정도...? @List의 정의 리스트의 필수요소로 리스트의 정의를 설명하자면, Linear relationship을 가져야한다. Linear relationship = Each element except the first has a unique predecessor, and each element except the last has unique successor @List의 종류 Unsorted List와 Sorted List가 있다. 1. Unsorted List 리스트 상의 데이터에 순서가 없다. 그 순서는 alphabetical..
2020.09.15