队列
#include <iostream>
#include <cstring>
using namespace std;
template <typename Q>
class liedui
{
public:
Q queue[6]; //顺序表
int size_queue; //列队大小
int head; //队列头
int end; //队列尾
liedui ()
{
memset(queue,0,sizeof (queue));
size_queue = 0;
head = 0;
end = 0;
}
Q back() //查看最后队尾
{
return queue[end-1];
}
int size()//查看列队大小
{
return size_queue;
}
int empty() //判空
{
return size_queue==0?1:0;
}
void bakc_push(Q c)//尾插
{
if((end+1)%6!=head)
{
queue[end]=c;
end=(end+1)%6;
size_queue++;
}
}
void pop()//头删
{
queue[head]=0;
head=(head+1)%6;
size_queue--;
}
Q shou()
{
return queue[head];
}
};
int main()
{
liedui<int> q;//创建
int i=0;
for(i=1;i<6;i++)
{
q.bakc_push(i);
cout<<"列队的最后一位是 "<<q.back()<<endl;
}
for(i=1;i<6;i++)
{
q.pop();
cout<<"列队的第一位是"<<q.shou()<<endl;
cout<<"列队里面有"<<q.size()<<"位"<<endl;
}
return 0;
}
现象:
栈:
#include <iostream>
#include <cstring>
using namespace std;
template <typename Q>
class liedui
{
public:
Q queue[6]; //顺序表
int size_queue; //栈大小
int head; //栈顶
int end; //栈底
liedui ()
{
memset(queue,0,sizeof (queue));
size_queue = 0;
head = 0;
end = 0;
}
Q back() //查看栈顶
{
return queue[end-1];
}
int size()//查看列队大小
{
return size_queue;
}
int empty() //判空
{
return size_queue==0?1:0;
}
void bakc_push(Q c)//尾插
{
if((end+1)%6!=head)
{
queue[end]=c;
end=(end+1)%6;
size_queue++;
}
}
void pop()//尾删
{
queue[end-1]=0;
end=(end+1)%6;
size_queue--;
}
Q shou()
{
return queue[head];
}
};
int main()
{
liedui<int> q;//创建
int i=0;
for(i=1;i<6;i++)
{
q.bakc_push(i);
cout<<i<<endl;
cout<<"栈顶的是 "<<q.back()<<endl;
}
for(i=1;i<6;i++)
{
q.pop();
cout<<"栈里面有"<<q.size()<<"位"<<endl;
}
return 0;
}
现象: