C언어를 공부하다 보면 포인터와 구조체를 배운 뒤 연결 리스트(Linked List)를 접하게 됩니다.그런데 연결 리스트를 공부하다 보면 자연스럽게 자료구조(Data Structure)와 시간 복잡도(Time Complexity)라는 개념이 등장합니다.특히 O(1), O(N), O(log N) 같은 표현은 처음 접하면 어렵게 느껴질 수 있습니다.이번 글에서는 C언어 초보자도 이해할 수 있도록 자료구조의 개념부터 배열과 연결 리스트의 차이, 시간 복잡도 계산 방법까지 예제 코드와 함께 정리해 보겠습니다.1. 자료구조(Data Structure)란?자료구조란 데이터를 효율적으로 저장하고 관리하기 위한 방법입니다.예를 들어 10, 20, 30, 40, 50이라는 숫자를 저장한다고 가정하겠습니다.C언어에서는 배..
배열을 이용하면 다항식의 계수와 차수를 간단하게 저장할 수 있다.하지만 차수가 높고 실제로 존재하는 항이 적다면 불필요한 저장 공간이 발생한다.이번에는 이중 연결 리스트를 이용해 다항식의 항을 노드로 저장하고, 두 다항식을 더하는 알고리즘을 구현해 보았다. 1. 연결 리스트로 다항식 표현하기배열에서는 각 차수에 해당하는 계수를 저장했다면, 연결 리스트에서는 실제 항을 하나의 노드로 만든다.typedef struct DListNode{ int coef; int expon; struct DListNode *prev; struct DListNode *next;} DListNode;typedef struct PList{ DListNode *head; DListNode *tail;..
C언어로 작성된 임베디드 소스를 분석하다 보면 다음처럼 조금 이상해 보이는 코드를 만날 수 있습니다.void ProcessData(void){ int bImport = 0; CHECK_IMPORT();}그런데 CHECK_IMPORT()를 따라가 보면 함수가 아니라 다음과 같은 #define이 존재합니다.#define CHECK_IMPORT() \ do { \ if (bImport == 0) \ bImport = 1; \ } while (0)여기서 중요한 의문이 생깁니다.bImport는 ProcessData()의 지역변수인데 왜 함수형 매크로에서는 별도의 선언 없이 사용할 수 있을까요?이..
C언어나 임베디드 프로그램의 헤더파일을 보다 보면 다음처럼 #define을 이용해 숫자를 0부터 순서대로 정의한 코드를 자주 볼 수 있습니다.#define ITEM_VALID 0#define ITEM_OPTION_A 1#define ITEM_OPTION_B 2#define ITEM_OPTION_C 3...#define ITEM_PRINT_OPTION 189 처음 C언어 소스를 분석할 때는 이런 의문이 생깁니다. "왜 굳이 0, 1, 2, 3처럼 숫자를 순서대로 정의해서 사용하는 걸까?" 단순히 숫자에 이름을 붙인 것처럼 보이지만, 임베디드 프로그램에서는 이러한 값을 설정 항목의 ID 또는 인덱스로 사용하는 경우가 있습니다.특히 구조체의 멤버 주소와 연결..
* 에러 내용 : Mapped Statements collection does not contain value for ~ * 에러 원인 : service.java에서 호출부분에는 test1.getList 였는데, 실제 쿼리가 적힌 xml 파일에는 namespace 선언이 ttest1로 되어있어 이름이 일치하지않아 나는 오류였다! * 해결 방법 : service.java에서 호출하는 부분을 xml의 namespace 선언부와 일치시키면 된다!
- Total
- Today
- Yesterday
- 강원도맛집
- 거제도 여행
- 인천
- 가성비갑
- server.xml
- 거제도
- 인천맛집
- 이베리코
- 개발자노트
- 여수
- 거제도 명소
- 인천가좌동맛집
- 강릉필수코스
- 거제도 가볼만한 곳
- 무한리필
- C언어포인터
- 혼밥
- 인천서구맛집
- 수요미식회
- 맛집
- 강릉맛집
- 국물요리
- 고기맛집
- 거제도 맛집
- URIEncoding
- 리눅스C
- C언어기초
- C언어
- 돼지고기
- 체험단
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
