본문 바로가기

공부69

[C] Queue 구현 (non-Circular) [c] Queue 구현 (non-Circular) -Code #include #define MAX_SIZE 10 void inqueue(int data); int dequeue(); int queue_full(); int queue_empty(); int queue[MAX_SIZE] = {}; int front = -1; int rear = -1; int main() { int want = 0; //operation number int input = 0; //input data while (1) { printf("What do you want? 1.inqueue 2.dequeue 3.end :"); scanf_s("%d", &want); switch (want) { case 1: if (queue_ful.. 2022. 3. 14.
[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.