day0913

#include 
#define MAX 128
using namespace std;
template 
class Stack
{
private:
    T data[MAX];
    int top;
public:
    Stack();
    Stack(Stack &s);
    //判空
    bool stack_empty();
    //判满
    bool stack_full();
    //入栈
    int stack_push(int num);
    //遍历栈
    void stack_show();
    //出栈
    int stack_pop();
    //获取栈顶元素
    int stack_top();
    //求栈的大小
    int stack_size();

    ~Stack();
};


int main()
{
    Stack s;
    s.stack_push(8);
    s.stack_push(5);
    s.stack_push(3);
    s.stack_push(7);
    s.stack_show();

    s.stack_pop();
    s.stack_show();

    s.stack_top();

    s.stack_size();

    return 0;
}
template
Stack::Stack():top(-1){}
template
Stack::~Stack(){}
template
Stack::Stack(Stack &s):top(s.top){
    for(int i=0;i<=top;i++)
        data[i]=s.data[i];
}
//判空
template
bool Stack::stack_empty()
{
    return -1==top;
}
//判满
template
bool Stack::stack_full()
{
    return top == MAX-1;
}
//入栈
template
int Stack::stack_push(int num)
{
    if(stack_full())
    {
        cout<<"入栈失败"<
void Stack::stack_show()
{
    if(stack_empty())
    {
        cout<<"栈空"<=0;i--)
    {
        cout<
int Stack::stack_pop()
{
    if(stack_empty())
    {
        cout<<"栈空"<
int Stack::stack_top()
{
    if(stack_empty())
    {
        cout<<"栈空"<
int Stack::stack_size()
{
    cout<<"栈的大小为:"<

2.队

#include 
#define MAX 8
using namespace std;
template
class Queue
{
    T data[MAX];
    int front;
    int tail;
public:
    Queue();
    ~Queue();
    Queue(Queue &q);
    //判空
    bool queue_empty();
    //判满
    bool queue_full();
    //入队
    int queue_push(T num);
    //遍历队
    int queue_show();
    //出队
    int queue_pop();
    //求队的长度
    int queue_size();
};

int main()
{
   Queue q;
   q.queue_push(8);
   q.queue_push(5);
   q.queue_push(3);
   q.queue_push(7);
   q.queue_show();

   q.queue_size();

   q.queue_pop();
   q.queue_show();
    return 0;
}
template
Queue::Queue():front(0),tail(0){}
template
Queue::~Queue(){}
//判空
template
bool Queue::queue_empty()
{
    return front == tail;
}
//判满
template
bool Queue::queue_full()
{
    return (tail+1)%MAX==front;
}
//入队
template
int Queue::queue_push(T num)
{
    if(queue_full())
    {
        cout<<"入队失败"<
int Queue::queue_show()
{
    if(queue_empty())
    {
        cout<<"队空"<
int Queue::queue_pop()
{
    if(queue_empty())
    {
        cout<<"队空"<
int Queue::queue_size()
{
    cout<<(tail+MAX-front)%MAX<

你可能感兴趣的:(c++)