728x90 programming/C6 [C언어] 자료구조 - 개념 정리 1. 알고리즘 시간복잡도 시간복잡도 O(1) : 알고리즘의 수행시간이 입력 데이터 수와 관계없이 일정하다 2. 알고리즘 복잡도 for(int i = 0; i < n; i *= 2 ) sum++; O(logn) 3. 용어정리 수행시간 : 순환이 반복보다 더 길다 데이터 타입 : 객체와 그 객체 위에 작동하는 연산들의 집합 알고리즘 공간복잡도 : 필요한 공간의 양 알고리즘 시간복잡도 : 필요한 컴퓨터의 시간의 양 4. 연결리스트 두 개의 리스트 하나로 합칠 때 효율적. 검색 : O(N) 삭제 : 이전노드 알 경우 O(1) 5. 원형연결리스트 헤드포인터가 마지막 노드 가리킬 경우 : 맨앞 삽입 & 맨뒤 삽입 쉬움 첫번째 노드 검색 시간 O(1) 6. 이중원형연결리스트 원형리스트 : 원형이 이전으로 순회할 수 .. 2020. 11. 2. [C언어] 자료구조 - 문자열예제(글자수 공백포함해서 세는 프로그램) 글자수 공백포함해서 세는 프로그램 입력1 $ myomyo 출력1 myomyo : 6 입력2 $ welcome to my blog 출력2 welcome to my blog : 18 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include #define BUFFER_SIZE 20 int main(void){ char buffer[BUFFER_SIZE]; while(1){ printf("$ "); //gets(buffer); 공백포함해서 받음 //그러나 배열이상 입력해도 돌아가는 문제점있음 fgets(buffer, 10, stdin);//엔터까지읽어서 버퍼에 저장 buffer[strlen(buffer) - 1] = '\0';//엔터자리에 널값 넣어줌 print.. 2020. 8. 8. [C언어] 자료구조 - 문자열, 파일 읽어오기 문자열이란? char 타입의 배열 : 한칸에 문자하나 마지막 문자열은 '\0' null값 => C에서는 char str[] = "hello"; 이것은 str h e l l o \0 과 같음 string literal char *str = "hello"; (수정 불가능) string.h라이브러리 strcpy 문자열 복사 strlen 문자열 길이 strcat 문자열 합치기 strcmp 문자열 비교 strdup함수를 이용하여 words할당하기 ex) words rain cloud sky sun 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 #define BUFFER_SIZE 100 int main(void){ char *word.. 2020. 8. 8. [C언어] 자료구조 - 포인터,배열,malloc 모든 변수는 주소를 가진다. 포인터(pointer) : 메모리 주소를 값으로 가지는 변수 int *ptr; & : 주소 추출 int c = 10; int *p; p = &c; //변수 c가 저장되어있는 메모리주소를 p에 넣음 int x = 1; int y = 1; int *ip; ip = &x; //x의 주소값1003가 ip에 저장됨. y = *ip; //ip에 있던 1003의 주소값을 가진 x값, 즉 1이 y에 저장됨. *ip = 0; //x가 0으로 됨. 1003 1 x 1004 1 y 1005 1006 1003 ip 1007 배열의 이름은 배열의 첫번째 값을 저장하는 포인터 int calculateSum(int *array) int함수에서 배열을 매개변수로 넘겨줄 때, 포인터 사용 가능 array[.. 2020. 7. 17. [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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12.. 2019. 10. 18. [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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 #include int stringCompare(const char *s1, const char *s2) { while (*s1 || *s2) { if(*s1 != *s2) { if(*s1 > *s2) return -1; else return 1; } s1++; s2++; } return 0; } void stringCat(char *s1, const char *s2) { while (*s1) s1.. 2019. 10. 15. 이전 1 다음 728x90