본문 바로가기
반응형

Data Structure36

C++ Stack 만들기 (version.2 - GrowableArray Stack) Stack 만들기 version 2 Growable Stack을 C++로 구현해 보도록 하겠다. 자료구조의 저장 공간을 모두 사용해 갈 때 자료구조의 크기를 늘려줌으로써 Overflow와 같은 문제를 예방할 수 있는 array이다. ArrayList가 이런 메커니즘을 가지고 있다. 크기가 4인 Stack이 아래와 같이 있다. 스택에 1부터 증가하는 값을 넣다보면 아래와 같이 될 것이고 스택은 가득 찬 상태가 될 것이다. 이 스택의 값을 유지한 채로 값을 더 넣고 싶다면, 현재 스택 사이즈 2배만큼의 배열을 만들어주고 원래 스택에 있는값을 두 배 크기로 만든 스택의 앞부분에 값을 옮겨준다. 옮겨 준 자료구조를 이제 스택으로써 사용하면 되고 뒤의 빈 공간은 0으로 초기화 시켜준다. 이런식으로 자료구조가 가득.. 2023. 3. 15.
C Circular Queue 만들기 Circular Queue의 C 버전이다 내용은 C++의 Circular Queue와 같으므로 내용보단 구조적인 차이를 염두해 두고 만들어 보겠다 https://suldenlion.tistory.com/78 (C++로 자료구조 구현하기) Queue 만들기 (version.2 - Circular Queue) C++로 자료구조 만들기 Circular Queue를 만들어 볼 것이다. Circular Queue는 문자 그대로 원형 큐, 즉 큐의 rear 부분이 자료구조의 끝을 가리키는 경우 enqueue를 한다면 rear가 자료구조의 맨 앞을 가리키 suldenlion.tistory.com 우선 main.c 프로그램이다 #include #include "queue.h" extern void print(Queue.. 2023. 3. 14.
C++ Queue 만들기 (version.2 - Circular Queue) C++로 자료구조 만들기 Circular Queue를 만들어 볼 것이다. Circular Queue는 문자 그대로 원형 큐, 즉 큐의 rear 부분이 자료구조의 끝을 가리키는 경우 enqueue를 한다면 rear가 자료구조의 맨 앞을 가리키게 되며 큐가 마치 원 모양으로 도는 것처럼 구현하기 때문에 이렇게 이름 지어졌다. size 4의 큐가 있을 때, 1부터 6까지의 숫자를 큐에다 넣는다 하고 아래와 같이 명령을 넣어보면 > enqueue(1), enqueue(2), enqueue(3), dequeue(), enqueue(4), dequeue(), enqueue(5), dequeue(), enqueue(6) 이런식으로 동작할 것이다. Queue의 Overflow 문제를 보완하기 위해 고안된 방법이지만 완.. 2023. 3. 14.
C Stack 만들기 C로 Stack 만들기 C++에 이어 C로도 Stack을 만들어 보겠다. 우선 메인함수부터 만들어준다. #include #include #include "stack.h" main() { /*Stack a; int x; initialize(&a); push(&a, 10); push(&a, 20); push(&a, 30); x = pop(&a); push(&a, 40); printf("%d, %d\n", x, pop(&a));*/ Stack *a; int x; a = (Stack *)malloc(sizeof(Stack)); initialize(a); push(a, 10); push(a, 20); push(a, 30); x = pop(a); push(a, 40); printf("%d, %d\n", x, pop.. 2023. 3. 14.
C++ Queue 만들기 (version.1) Stack에 이어 Queue를 C++ 로 만들어 보겠다. Queue도 주로 Stack과 같이 자료구조의 앞 부분을 장식하는 친구이다. First In First Out 방식이며, 데이터 추가 및 삭제시 Java에서는 add()와 remove()지만 C++은 enqueue()와 dequeue()이다. 메인 함수가 있는 test.cpp 파일을 먼저 만들어 보겠다. #include "Queue.h" #include void main() { /*Queue q; q.enqueue(10); q.enqueue(20); q.enqueue(30); int x = q.dequeue(); printf("%d\n", x); q.enqueue(40); q.enqueue(50); printf("%d\n", q.dequeue()).. 2023. 3. 14.
C++ Stack 만들기 (version.1) C++와 C language를 어느 정도 잘 다룰 필요가 있다고 생각되어 자료구조 구현을 해볼 것이다. Stack이란 Data Structure 공부를 하게 되면 처음 접하게 되는 친구이다. Last In First Out 방식의 Collection 객체이며 push, pop등으로 연산한다. 바로 test.cpp라는 이름의 main함수를 만들어 보겠다. #include #include "Stack.h" void main() { /*Stack a; a.push(10); a.push(20); a.push(30); int x = a.pop(); a.push(40); printf("%d\n", x); printf("%d\n", a.pop());*/ Stack *a; a = new Stack(); a->push(.. 2023. 3. 13.
반응형