#include<iostream>
using namespace std
;
class queue
{
int size
;
int *front
;
int *base
;
public:
queue(int n
)
{
front
=base
=new int[n
];
size
=n
;
}
void enqueue(int x
)
{
if(front
-base
<size
)
*front
++=x
;
}
int dequeue()
{
int member
,*p
;
if(front
>base
)
{
member
=*base
;
for(p
=base
+1;p
<front
;p
++)
{
*(p
-1)=*p
;
}
--front
;
}
return member
;
}
int operator!()
{
return(front
==base
);
}
int getlength()
{
return size
;
}
operator int()
{
return(front
-base
);
}
void disp()
{
while(base
!=front
)
{
cout
<<*base
++<<" ";
}
}
~queue()
{
delete []base
;
}
};
int main()
{
queue
s(10);
s
.enqueue(0);
s
.enqueue(1);
s
.enqueue(2);
s
.enqueue(4);
int x
=s
.dequeue();cout
<<x
<<endl
;
cout
<<"queue.length="<<s
.getlength()<<endl
;
int y
=s
;cout
<<"number="<<y
<<endl
;
s
.disp();
}
转载请注明原文地址: https://mac.8miu.com/read-501803.html