본문 바로가기

Data Structure8

[C] Search in Graph * 해당 글은 학과 수업으로 배운 내용과 코드가 포함되어 있으며 개인적 공부 목적으로 업로드하였습니다. 우리는 이전 graph에서 path를 살펴보았다. Path: edge로 연결된 vertices의 sequence를 의미한다. 두개의 vertices는 path가 있다면 connected 되었다고 말할 수 있다. V1과 V2가 connected되었다면 V2는 V1으로부터 reachable하다고 말할 수 있다. 이때 이렇게 connected 된 vertices의 maximal set을 connected component라고 부른다. 두개의 vertices가 reachable한지 알기 위해서 우리는 path를 찾아야 한다. 우선 reachability를 수학적으로 정의해보자 만약 start == target.. 2022. 12. 16.
[C] Graph In C * 해당 글은 학과 수업으로 배운 내용과 코드가 포함되어 있으며 개인적 공부 목적으로 업로드하였습니다. Graph는 점처럼 표시된 vertices 혹은 nodes가 line으로 표시된 edges와 연결된 형태를 나타낸다. 각 edge는 한쌍의 vertices를 연결하고 있으며 두 vertices 사이에 최대 1개의 edge가 존재할 수 있다. 우리가 이 게시글에서 다룰 graph는 - undirected : edge(B, A) = edge(A, B) - no self-edges : (v, v) 사이에는 edge가 존재하지 않는다 graph는 vertices와 edge pair로 나타낼 수 있다. G = (V, E) 어떤 vertex의 neigbors는 해당 vertex와 edge를 통해 연결된 모든 ve.. 2022. 12. 15.
[C] C에서 숫자란? * 해당 글은 학과 수업으로 배운 내용과 코드가 포함되어 있으며 개인적 공부 목적으로 업로드하였습니다. C0/C1에서는 int는 32 byte이었는데 C에서의 int size는 오랜 시간 변해왔다. 현재 C에서는 int size는 compiler에 의해 결정된다. 이를 우리는 implementation-defined라고 부를 수 있다. 단, 이는 undefined behavior와는 다른 개념이다. C에서는 다양한 integer type이 존재한다. long : int보다 큰 타입의 integers short: int보다 작은 타입의 integers char: short보다 작은 타입의 integers (1 byte) C는 각 integer별로 unsigned variants를 제공한다. -같은 bits.. 2022. 12. 14.
[C] C언어에 대해 알아보자 * 해당 글은 학과 수업으로 배운 내용과 코드가 포함되어 있으며 개인적 공부 목적으로 업로드하였습니다. 오늘은 c언어에 대해 본격적으로 알아보겠다 여태까지 보아왔던 C0/C1은 contract을 포함한 C의 안전한(?) 버전이라고 할 수 있다. C Preprocessor 일반적 C program은 2가지 언어로 작성된 statements로 구성되어있는데 -C preprocessor language(#으로 시작하는) -C proper 이다. C preprocessor는 모든 c preprocessor directives를 process하고 코드를 C proper로 나타내는 프로그램이다. C preprocessor에 들어갈 C preprocessor directives의 종류에는 아래와 같다 -File in.. 2022. 11. 25.