공부/C, C++38 [C] Stack 구현 (non -Circular) [C] Stack 구현 (non -Circular) - Code #include #define MAX_SIZE 10 void push(int data); int pop(); int stack_full(); int stack_empty(); int stack[MAX_SIZE] = {}; int top = -1; int main(){ int want= 0; //operation number int input = 0; //input data while (1) { printf("What do you want? 1.push 2.pop 3.end :"); scanf_s("%d", &want); switch (want) { case 1: if (stack_full()) // is stack full? printf(".. 2022. 3. 14. [C] 링크드 리스트 LinkedList [C] 링크드 리스트 LinkedList - 진행 연결형 리스트(Linked List)는 한 배열에 모든 게 들어있는 게 아니라, 리스트가 자신의 첫번째 노드인 headnode와 총 몇 개의 노드가 있는지 count만 가지고 있다. 즉, 리스트는 첫번째 노드와 리스트 길이만을 가지고 있다. 노드는 자신의 들고있는 data와 다음 노드를 가리키는 포인터를 가지고 있다. 이번에도 파일은 main.cpp, LinkedList.h, LinkedList.cpp로 나눠서 진행한다. 먼저 LinkedList.h 파일에 typedef로 list와 node를 정의해준다. main.c 에서 typedef로 정의한 리스트 변수를 하나 만든다. 이 링크드리스트를 사용하기 위해 필요한 기능은 3가지가 있다. (데이터 추가 방식.. 2022. 3. 13. [C] 함수 포인터 [C] 함수 포인터 -함수 포인터 그동안 포인터를 배우면 어떤 변수의 주소를 얻어오는 걸 할 수 있게 되었다. 그렇다면 변수의 주소뿐만 아니라, 함수의 주소도 가져올 수 있다. // 포인터로 동적으로 함수를 불러오기 void Test() { } void Test2() { } int main() { //함수 포인터: 반환타입, 주소, 인자 void(*pFunc)(void) = nullptr; //선언 당시 함수 타입이 맞아야 호출가능 pFunc = Test; pFunc(); // Test 함수가 불려진다. pFunc = Test2; pFunc(); // Test2 함수가 불려진다. } 2022. 3. 12. [C] Bubble sort [C] Bubble sort 시간 복잡도 O(n^2)이다. 시간 복잡도가 높은 편이지만 구현이 간단하다. code void BubbleSort(int* _pData, int _iCount) { // 데이터가 1개 이하면 정렬하지 않는다. if (_iCount _pData[i + 1]) //앞의 값이 뒤의 값보다 클때 서로를 바꾼다. { int iTemp = _pData[i]; _pData[i] = _pData[i + 1]; _pData[i + 1] = iTemp; bFinish = false; } } if (bFinish) break; } } void main() { int iArr[10] = {87, 644, 21, 55, 879, 32, 1, }; //임의의 배열 BubbleSort(iArr, 10).. 2022. 3. 11. [C] 가변 배열 (malloc) [C] 가변 배열 (malloc) (update) 2022.03.10 코드에 오타가 많아 수정했습니다. 그동안 배웠던 배열은 크기가 고정이었다. int arr[10] = {}; // 크기 10개 짜리 배열. 이건 가능할까? //1번 경우 int a=100; int arr[a] = {}; //2번 경우 int iInput = 0; scanf_s("%d", &a); int arr[a] = {}; // 지역변수인데 실행이전 컴파일러가 값을 확정할 수 없다. // 프로그램을 실행시켜봐야 아는 자료형이 어디 있겠느냐~ 배열 개수를 선언할 때에는 변수를 사용할 수 없다. 가변 배열을 만들기 위해서는 힙 메모리 영역을 사용할 수밖에 없다. - 가변 배열 만들기 가변 배열을 할 수 있는 자료형을 분할 구현을 해서 만든.. 2022. 1. 10. 이전 1 2 3 4 5 6 ··· 8 다음