일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 연결리스트
- InfluxDB
- 문자열 다루기
- 소켓프로그래밍
- 파일입출력
- InfluxDBClient
- foreground service
- Android
- Mat 변수
- flutter
- vs code
- dictionary
- vscode
- socket
- 문자열다루기
- ws2_32.lib
- UI
- dart
- 콘솔 키보드 이벤트
- background service
- FTP
- 자료구조
- 딕셔너리
- Kotlin
- 문자열파싱
- 메모리반환
- 진수변환기
- 코틀린
- C
- Linked List
- Today
- Total
목록자료구조 (4)
무슨 일로 C 하셨습니까?
추가로 필요한 함수를 더 만들어보자 int DICTIONARY_Delete(dictionary* head, char* key) { _dictionary* ptr = head->head; _dictionary* pre = NULL; while (true) { if (ptr == NULL) return false; else if (StringCompare(ptr->key, key) == COMPARE_SAME) break; pre = ptr; ptr = ptr->link; } if (pre == NULL) { free(ptr); head->head = NULL; } else { pre->link = ptr->link; free(ptr); } head->count--; return true; } 삭제 함수는 ..
파이썬을 사용하다보면 은근히 많이 사용되는게 바로 딕셔너리다 key - value 로 값을 접근하고 저장할 수 있다는 점이 상당히 매력적이다 그런 매력적인 자료형을 C에서 사용하지 아니할 수 없다 고로 구현해보자 typedef struct _DICTIONARY { char* key; void* value; struct _DICTIONARY* link; }_dictionary; typedef struct DICTIONARY { int count; struct _DICTIONARY* head; }dictionary; 우선 구조체 부터 만들면 다음과 같다 전체적인 부분은 연결 리스트와 동일하나 value 값으로 문자열 뿐만아니라 숫자 다른 구조체 등 여러 자료형을 동시에 받을 수 있도록 void형 포인터를 사..
리스트를 정의하고 맨 뒤에 데이터를 추가하는 함수까지 만들었다 추가로 리스트에 필요한 여러함수를 구현하자 우선은 데이터가 잘 들어갔는지 확인도 할겸 출력함수 부터 구현하자 void LIST_Show(list head) { node* temp = head.body; int i = 0; printf("--- total count : %d\n", head.count); while (temp!=NULL) { printf("%d - %s\n", i,temp->data); i++; temp = temp->link; } } 코드 로직적으로 복잡할게 없고 에러가 발생할 일도 없으니 간단하게 구현했다. 그 다음은 전체 메모리 반환이다. 메모리를 썼으면 적절하게 반환하는걸 잊지말자 int LIST_Release(list*..
C하면 자료구조. 자료구조하면 리스트가 아니겠는가 사실상 큐나 스택 트리 그래프 모두 리스트가 베이스라고 생각된다. 고로 리스트를 구현해보자 우선 구조체를 만들어보자 typedef struct NODE{ char* data; struct NODE* link; }node; typedef struct LIST{ int count; struct NODE* body; }list; 이름들은 아주 직관적으로 짓겠다. NODE (body) data 실제 데이터가 저장되는 변수 link 다음 리스트를 가르키는 포인터 LIST (head) count 리스트의 전체 크기 body 실제 리스트를 가르키는 포인터 구조체를 두개로 구현하여 멋을 가미시켜주자 리스트에 저장될 데이터는 숫자일수도 있고 문자일수도 있고 모르는 일이나..