Доброй ночи! Написала программу, но почему то print и contains не работает! помогите, пожалуйста, разобраться или наведите на путь истинный!!!
Код:
#include <iostream>
#include <cassert>
class Queue;
typedef int T;
const int S=50;
class Queue
{
private:
int first;
int size;
T data[S];
public:
Queue()
{
first;
size=0;
}
~Queue() {}
bool isEmpty()
{
return size==0;
}
int count()
{
return size;
}
bool push(T t)
{
// std::cout<<"Yahoo"<<"\n";
if(size==S) return false;
else{
data[(first+size++)%S]=t;
return true;
}
}
bool pop()
{
if(!size) return false;
else{
first++;
first%=S;
size--;
return true;
}
}
T top()
{
if(size) return data[first];
}
bool contains(T t)
{
//std::cout<<"Yahoo"<<"\n";
for(int i=0; i<size; i++)
{
//std::cout<<"Yahoo"<<"\n";
//std::cout<<data[2]<<"\n";
if(data[i]==t) return true;
return true;
}
return false;
}
void print()
{
for(int i=0; i<size; i++)
{
std::cout<<data[i]<<"\n";
}
}
void bubblesort()
{
int i;
int j;
int tmp;
for(i = 0; i <= size-1; i++)
{
for(j = 0; j <= size-2-i; j++)
{
if( data[j]>data[j+1] )
{
tmp = data[j];
data[j] = data[j+1];
data[j+1] = tmp;
}
}
}
}
};
int main()
{
Queue q;
assert(q.isEmpty()==true);
assert(q.push(12)==true);
assert(q.push(13)==true);
assert(q.count()==2);
assert(q.isEmpty()==false);
assert(q.pop()==true);
assert(q.isEmpty()==false);
assert(q.count()==1);
assert(q.contains(13)==true);
q.bubblesort();
q.print();
return 0;
}