본문 바로가기

👩‍💻Developer/Language6

[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]Bytecode In C * 해당 글은 학과 수업으로 배운 내용과 코드가 포함되어 있으며 개인적 공부 목적으로 업로드하였습니다. Compilation C program을 execute할 때 우리는 우선 compilation이 필요하다 이때 우리는 compiler를 활용해서 source program을 machine code로 번역할 수 있다. 이는 processor가 이해하고 execute바로 할 수 있는 program이다. Interpretation Interpreter는 source program의 각 라인을 읽고 이를 hardware에 simulate하는 것이다. 이 또한 machine code에서 program이다. 비유를 하자면 compilation은 text전체를 번역하는 것이지만 interpretation은 실시간으.. 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.