CS:APP 1. 정보는 비트와 컨텍스트로 이루어진다. bit 메모리를 구성하는 최소 단위로 0과 1을 저장할 수 있다. hello.c 위 사진과 같은 프로그램은 0과 1의 비트들의 연속으로, 8비트(1byte)로 구성된다. ASCII 대부분의 컴퓨터는 문자를 ASCII 표준을 사용해서 표현한다. 개행 문자의 경우, \n으로 표현되는 것을 알 수 있다. hello.c는 오로지 아스키 문자열로 이루어져 있으며, 이런 파일들을 텍스트 파일이라고 한다. 그 외 모든 파일을 바이너리 파일이라고 함. 컨텍스트 호출 응답간의 환경 정보, 서로 다를 객체들을 구분하는 방법이라고 한다. 딱 정의되어 있는 개념이 아닌 추상적인 개념이라 컴퓨터 공학을 공부하다 보면 심심치않게 만나볼 수 있는 단어. 아직은 익숙하지 않아 ..
비선형 자료구조 1. 트리 트리란? 트리란 뱡향성이 있는 비순환 그래프이다. 뒤집었을 때 뻗어나가는 나무의 형상을 해서 트리라고 한다. 트리의 구성 요소 가장 상위의 노드는 root 라고 하고, 가장 바깥 노드는 leaf, 그 외 노드는 branch 라고 한다. 사실상 명칭의 차이만 있을 뿐 모든 노드의 구성 요소는 일치한다. 트리의 특징 계층적 속성을 갖는 자료를 선형 구조로 표현하기 어렵다는 한계를 극복하기 위해 고안되었다. 모든 노드들은 하나의 루트 노트에서 시작한다. 뱡향성은 부모에서 자식으로만 연결, 같은 계층에 노드끼리는 연결하지 않는다. 임의의 노드에서 출발하여 자기 자신으로 되돌아올 수 없다. 간선의 갯수는 노드의 갯수 -1 이다. 이진트리란? 트리와 거의 동일한 구조로 이루어져 있으며, ..
오늘 발표를 마무리 하고 이제 본격적으로 알고리즘 학습주차에 접어들었다. 본격적으로 알고리즘 학습주차에 들어가기 전 백승현 코치님께서 기본적으로 알고 가야 할 개념들에 대해 한번씩 집어주셨다. 알고리즘을 시작하기 전 정확히 알고있어야 하는 개념들 1. 링크드 리스트, 배열 링크드 리스트와 배열은 비슷한 개념으로 이해하면 된다. 링크드 리스트는 각 메모리가 연속되어 나열되는 배열의 개념과는 다르게 현재 값과 다음 순서의 자료가 있는 주소를 가르키는 데이터를 하나의 노드로 묶어 배열을 구성한다. 링크드 리스트와 단순 배열의 가장 큰 차이는 저장된 값의 배열이 메모리 상에 연속되는지 아닌지 차이다. 장점 단점 배열 배열의 경우 정적 자료구조에 해당하며, 최초 할당 시 미리 크기를 정해놓게 되어 연속된 메모리 ..