자료구조는 윤성우의 열혈 자료구조 교재를 통해 학습할거다.1장, 자료구조와 알고리즘의 이해1장이니만큼 정말 기본적인 내용만을 학습했다.우선, 자료구조란 무엇인가. "데이터의 저장"을 담당하는 것 이다. 뭐 예로들면, 문자를 저장하기 위해 char형 변수를 선언한다거나
오늘은 자료구조 한파트 끝내고, C언어 한파트 복습하고, 백준 문제 풀어야겠다. 자료구조 공부를 하다보니, C언어 복습 내용 안한거 조금이 계속 발목을 잡아서 한번 익힌걸 머리에 박아넣질 못하고있다. 빨리빨리 해야지. >2장, 재귀 (Recursion) 재귀에 대
이번 Ch.03는 좀 다룰 내용들이 많다. 복습하면서 체화시키도록 하자.Ch.03 Linked List 1우선 이 교재에서 알려주는 첫 번째 자료구조를 학습하기 전에, 알아둬야할 내용을 미리 공부하자. 추상자료형(ADT) 우선, 추상자료형을 간단히 한 문장으로 정의하자
하루뒤에 온다 해놓고, 푹 쉬고 와버렸다,,바로 시작하자.제목이 C언어 입문 with 자료구조인 이유는, 두 책 같은 얘기를 하기 때문이다. Linked List 이야기를 하는데, C언어 입문에서 간단하게 이론을 익히고 ( 더 쉽게 설명해준다. ) 자료구조 책에서 다시
어제 많은 내용을 복습해서 오늘은 막 그렇게 복습할 내용이 많진 않을거다.어제는 LinkedList를 노드를 활용해서 구현을 하는 과정중 LRemove 까지 소개를 했다. SetSortRule을 제외하고 왠만한 추가 / 조회 / 삭제 과정은 다 소개를 한 것. 이제 연
지금까지 연결 리스트는 배열 기반 리스트와 DMY 노드를 head로 설정해서 구현하는 연결 리스트를 구현했다.이번에는 '원형 연결 리스트' 에 대해 설명하고자 한다.Ch 05. Circular Linked List (CLL)지금부터 원형연결리스트는 그냥 CLL이라고 축
오랫만. 금요일엔 진도만 나가고 까먹고 복습을 안했다..Ch 05-2, Doubly Linked List우린 지금까지 배열 기반 연결리스트 / DMY 기반의 연결리스트 / CLL 을 배웠다. 이번엔 양방향 연결 리스트 (지금부터 DLL이라고 작성하겠다)을ㅇ 배워보자.양
저번주 금요일에 복습을 까먹고 안 한 내 죗값..Ch.05 복습을 끝냈으니, 이번엔 Ch.06 복습을 진행해보겠다. 아마 계산기 구현 전까지 하지 않을까 싶다.STACK. 일단 단어부터 "쌓다"라는 의미를 가지고 있다.어느정도의 정형화된 정의를 보자. 메모리에 새로 들
오늘은 Ch.6의 복습을 끝내고 진도를 나가보겠다.그리고 예정상으론 오늘부터는 자료구조와 Cpp를 함께 공부하려고 한다. 힘내보자 나.Ch. 06-2. 스택의 연결리스트 기반 구현 및 계산기 프로그램 구현어제는 배열을 기반으로 Stack을 구현했고, 오늘은 연결 리스트
오늘은 스택만큼 유명한 "Queue (큐)" 를 알아보자.Ch.07 Queue액션~ 큐!!가 아니고, 스택이랑 거의 비슷하다.스택은 후입선출 구조였다. 나중에 넣은 애일수록 먼저 나온다는거다.이거는 그냥 거의 개념은 비슷한데, 다르다. 선입선출(先入先出)이다. 먼저
.. 좀 많이 늦었다.의도치 않게 갑자기 금~일 일을 하게 됐어서 목요일 월요일은 몸 좀 쉰다고 공부를 손 놓고 있었다. 힘들었다..지금도 매우 나른하지만, 공부를 완전 손 놔버릴순 없으니까. 이제 다시 공부 진도를 뽑아보도록 하자.Ch 07-3 , Queue 구현 -
Ch.08 TreeTree. 앞서 단순하게 데이터를 저장하게 뽑아내기만 했던 뭐 List, Stack, Queue, Deque.. 과는 전혀 다르다. 방금 말한 이런 자료구조들은 선형 자료구조이지만, 이번에 학습할 트리는 비선형 자료구조이기때문에 집중해서 공부를 해야한
인간의 욕심은 끝이 없고 같은 실수를 반복한다.나는 잠과 나태함을 이겨내지 못하는가보다.. 끝 없는 반성과 다시 실수의 반복. 후우.....Ch. 08-2, 이진 트리 구현앞서 공부했던 트리를 구현한다.일단, 이 이진 트리도 앞서 List들처럼 배열 기반으로도 만들 수
about Expression Tree이진 트리의 일종인 수식 트리를 공부해보자.수식 트리란 뭐냐. 이름 그대로 생각하면 된다. "수식을 트리로 표현한 것"이다. 이 때 쓰이는 "트리"가 이진트리고. 그래서 그냥 이진 트리를 활용한 하나의 예시라고 생각해도 된다.예를
오늘은 우선순위 큐 & Heap을 알아보자.Ch.09 우선순위 큐와 힙우선순위 큐도 그냥 큐처럼 핵심 기능은 두개다.Enqueue : queue에 데이터 삽입Dequeue : queue에서 데이터 꺼냄근데 여기서, 그냥 Queue와 우선순위 큐와의 차이는 연산 결과에
저번에 했던 heap의 나머지 이야기를 해보자.우선순위를 알아서 따지는 heap 구현저번 09-1에서 이런 이야기를 했었다.어? 근데 우선순위를 굳이 내가 집어넣어야하나? 그럼 너무 귀찮은거 아닌가요? 컴퓨터가 알아서 해주는줄..이에 대해 이렇게 답했다.일단 Heap
주말 잘 쉬고 왔다. 공부 시작. Ch.10 정렬 (Sorting) 정렬. 이름 그대로 정렬한다.그 정렬과 관련된 알고리즘들을 알아보자.우선, "단순한" 정렬 알고리즘들 부터.버블 정렬이라고 한다. 배열에서 인접한 두개의 데이터를 "일일히" 비교해가며 정렬을 진행한다.
정렬에 대한 이야기를 이어서 해보자.Sort퀵 정렬. 이름부터 Quick이라 뭔가 빨라보인다. 앞에 병합정렬이 꽤 어려웠어서 얘도 그만큼 어려울까봐 걱정할 수도 있는데, 다행히도 그정돈 아니다.그래도, 기본 원리 자체는 막 쉬운건 아니긴 하다.일단, 퀵 정렬의 기본 원
오늘은 정렬 Ch 에서 마지막으로 남은 Radix Sort(기수 정렬)을 복습 하고, 이후에 Ch.11을 따로 복습한 글을 올리겠다.Radix Sort (기수 정렬)우선, "기수"란 말이 생소할 수도 있다.기수(radix) : 데이터를 구성하는 기본 요소만약 10진수가
Ch.11 탐색(Search) 1 예 일단은, 시작해보자. 11-1 탐색 이름 그대로다. "데이터를 찾는 방법" 이번에 소개할 탐색은 "자료구조"의 맥락에서 보면 되겠다. 그리고, Tree의 연장선상에서 익힌다고 생각하자. 또 하나 더. 지금 우리가 탐색을
Ch.11 탐색 - 2일차저번 시간엔 이진 탐색 트리의 아주 기본적인 기능들 (Insert, Search, Make&Init, GetData) 를 구현했었다.그런데, 뭔가 나사가 하나 빠져있다는 생각이 안드는가.삭제 기능이다.앞서 구현한 기능들과 함께 구현해도 되었지만
Ch.12 탐색(Search) 2이번에도 "탐색" 과 관련된 내용을 학습하는 Chapter지만, 앞서 이진 탐색 트리의 연장선상이라고 봐도 된다.앞서 이진 탐색 트리는 트리 높이 +1 당 추가할 수 있는 노드의 수가 2배씩 늘어나서, O(log2n)의 시간 복잡도를 가
이번 Chapter부터는 조금 글의 양식을 바꾸도록 하겠다.더 직관적으로? 보기 편하게? 하기위해서.이번 챕터도 탐색(Search)과 관련있는 내용을 다룬다.이름을 들었을 땐 낯설다. 앞에선 ~ 리스트, ~ 트리 그렇게 다뤘는데, Table? 뉴페이스 카테고리의 등장이
시작해보자.앞서 13-1에서 충돌에 대해선 그냥 단순히 "뭐다"하고 알아만 두라고 하고 넘겼었다.충돌은 "피해야 하는" 문제방법이 아니고, "해결해야 하는 방법이다". 알아두자.이렇게. 이번엔, 이 충돌을 해결하는 방법을 디테일하게 살펴보자.우선, 선형 조사법(Line
2021년의 마지막 날이다.어째 어째 시간을 날려먹다보니, 벌써 한해가 가네. 내년부터 복학할 생각을 하니 쪼끔 머리가 띵하다. 열심히 살자.\-- 1월 3일 추가 --211231에 썼는데, 왜인지 모르겠지만 업로드가 안되어있어서, 1월 3일에 업로드한다.이번 챕터에선
오늘은 저번 시간에 배운 "그래프"를 써먹어서, 탐색할 수 있는 자료구조를 만들거다. 꽤 어려울 수도 있으니, 꼼꼼히 복습하도록 한다.이번 탐색 시간엔, 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 두가지를 다룰 것이다. 각각 내용이 꽤나 많으므로, 집중하자.우
저번 시간에 우리는 DFS를 구현했다.언급했던대로 이번 챕터에서 BFS를 구현할거다.앞서 우리는 DFS에서 가장 중요한 DFShowGraphVertex 함수에서 해당 함수의 기능을 구현하는데 큰 역할을 한 재료 두개는 "연결 리스트"와 "Stack" 이였다.이번에도 연