Class 사용으로 DataStruct Queue 구현
Header.h
#include<cstdio>
#include<cstdlib>
#define MAX_INDEX 4
class DataSturct {
private:
protected:
int arrayData[MAX_INDEX];
int front = -1;
int rear = -1;
public:
virtual void push(int value) = 0;
virtual int pop() = 0;
virtual bool isEmpty() = 0;
virtual bool isFull() = 0;
DataSturct() {
printf("\n");
}
};
/*
Queue 는 일반적으로 push, pop isEmpty, isfull 4개의 동작으로 이루어져있다.
push 를 하면 rear 의 값을 증가하고 rear 의 인덱스값에 값을 입력
pop 을 하면 front 값을 증가시키고 값을 반환
*/
class Queue : public DataSturct {
public:
Queue() : DataSturct() {
printf("this is DataSturct\n");
}
virtual void push(int value) override{
if (isFull()) {
printf("Queue is Full !!\n");
}
else {
++rear;
arrayData[rear] = value;
}
}
virtual int pop()override {
if (isEmpty()) {
printf("Queue is Empty!!\n");
}
else {
++front;
int popData = arrayData[front];
return popData;
}
}
virtual bool isEmpty() override {
return rear == front;
}
virtual bool isFull() override{
return rear >= MAX_INDEX;
}
};
Source.cpp
#include"Header.h"
int main() {
Queue data1 = Queue();
data1.push(10);
data1.push(10);
int popData = data1.pop();
popData = data1.pop();
popData = data1.pop();
printf("This is Pop data = %d \n", popData);
fgetc(stdin);
return 0;
}
자료구조 기초 (0) | 2017.12.06 |
---|---|
Binary Search Tree 구현. 자료구조 공부 (31) | 2017.06.08 |
Insertion_sort_ 구현 (0) | 2017.05.25 |
[Data_Struct] Stack 구현 (0) | 2017.05.23 |
Linked_list [data_struct] (31) | 2017.05.22 |