ADT Quesue
-Objects: a finite ordered list of elements
Functions
+Queue Create(max_size)
+Boolean IsFull(Queue *Q)
+Boolean IsEmpty(Queue *Q)
+Boolean Add(Queue *Q, Element in)
+Boolean Delete(Queue *Q, Element *out)
Implementaton of Queue
Queue Create(100)
typedef struct{
int item[100];
int front=-1;
int rear=-1
2,3에 채워져있다면
front:1, rear:3 구현하기 나름
boolean IsFull(Queue *Q)
{
return(Q->rear==99);//return(Q->front==((Q->rear+1)%100));원형 queue 일때
}
boolean IsEmpty(Queue *Q)
{
return(Q->rear==Q->front);
}
boolean Add(Queue *Q, int in)
{
if (IsFull(q)==true) return false;
Q->item[++Q->rear]=in;//Q->rear=(Q->rear+1)%100; Q->item[Q->rear]=in;
return true;
}
Queue n_Q;
IsFulll(&n_Q);
boolean Delete(Queue *Q, int *out){
if (IsEmpty(Q)==true)return false;
*out=Q->item[++Q->front];//Q->front=(Q->front+1)%100;*out=Q->item[Q->front];
return false;
}원으로 만들었을때, 1은 빠져있고, 2부터 99까지 채워있을때 모두 차있는 것
Dynamically Allocated Storage
-힙 영역을 사용한다.
int *pInt;
pInt=(int*)malloc(sizeof(int));
*pInt=1024;
free(pInt);