cs 4
[자료구조] c언어로 큐, 원형 큐 구현하기
큐(Queue)란? 큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 자료구조이다. 선입선출(FIFO: First-In First-Out)한다는 특징이 있고, 매표소나 계산대의 대기열을 생각해보면 이해하기 쉬울 것이다. 이번 글에서는 큐와 큐의 더 발전된 형태인 원형 큐도 구현해 보겠다. 큐 타입 구조체 정의 및 초기화 함수 #include #include #define SIZE 100 typedef char element; typedef struct { element data[SIZE]; int rear, front; } QueueType; void init(QueueType *Q) { Q->rear = Q->front = -1; } 큐의 요소에 해당하는 data 배열과, 큐의 가장 앞과 뒤에 해당하..
cs/자료구조 | 2022. 11. 3. 14:10
[자료구조] c언어 구조체로 스택 구현하기
스택(Stack)이란? 스택은 데이터를 후입선출(LIFO:Last-In First-Out)하는 자료구조로, 가장 최근에 들어온 데이터가 가장 먼저 나간다는 특징이 있다. 상자나 책을 쌓아놓은 더미를 생각하면 이해하기 쉬울 것이다. 이번 글에서는 스택을 배열 구조체를 이용해서 구현해 볼 것이다. 스택 타입 구조체 정의 및 초기화 함수 #include #define SIZE 100 typedef int element; // 배열안에 들어오는 값의 타입을 element로 한번에 지정 typedef struct { element data[SIZE]; int top; // Index 번호 } StackType; // 초기화 void init(StackType *S) { S -> top = -1; // 포인터 연산..
cs/자료구조 | 2022. 10. 26. 15:50
[c언어] 배열, 포인터 간단 정리
pointer 포인터를 선언할 때도 *를 사용하고 역참조를 할 때도 *를 사용한다. 같은 * 기호를 사용해서 헷갈릴수 있지만 선언과 사용을 구분해서 생각하면 된다. 즉, 포인터를 선언할 때 *는 이 변수가 포인터다라고 알려주는 역할이고, 포인터에 사용할 때 *는 포인터의 메모리 주소를 역참조하겠다라는 뜻. int *numPtr; // 포인터. 포인터를 선언할 때 * printf("%d\\n", *numPtr); // 역참조. 포인터에 사용할 때 * int num; int *numPtr; *numPtr = # (x) numPtr = # (o) *numPtr = num; (o) // *numPtr은 int형, numPtr은 포인터형(int형 포인터) // num 은 int형, &num은 주소형..
cs/c언어 | 2022. 9. 22. 13:30
HTTP와 HTTPS의 차이점
HTTP는 무엇일까? HTTP는 Hyper Text Transfer Protocol의 약자로, 인터넷 상에서 데이터(Hyper Text)를 주고 받기 위해서(Transfer) 서버/클라이언트 모델을 따르는 프로토콜입니다. 주로 웹 브라우저와 웹 서버간의 커뮤니케이션을 위해서 디자인 되었으며 ?? HTTP는 주로 TCP를 사용하고, 2020년부터 도입된 HTTP/3에서는 UDP를 사용합니다. 또한 기본 포트로 80번을 사용한다는 특징이 있습니다. 서버/클라이언트 모델: 클라이언트가 요청을 생성하기 위한 연결을 연다음 응답을 받을때 까지 대기하는 전통적인 방식 프로토콜: 컴퓨터 내부 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계 HTTP의 문제점 HTTP 서버는 기본 80번 포트에서 서비스를..
cs | 2022. 7. 21. 16:14