数据结构之 栈和队列(实验2)

直接放代码了

/*
栈
2018年11月12日
*/
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
template<typename T>
class Stack{
    /*
    1.入栈
    2.出栈
    3.栈中元素个数
    3.栈顶元素
    */
private:
    T date[MAXSIZE];
    int num;
public:
    Stack()
    {
        num=0;
    }
    bool push(T val)
    {
        if(num==MAXSIZE)
            return 0;
        date[num++]=val;
        return 1;
    }
    bool pop()
    {
        if(num==0)
            return 0;
        num--;
        return 1;
    }
    T top()
    {
        return date[num-1];
    }
    int size()
    {
        return num;
    }
    bool empty()
    {
        if(!num)
            return 1;
        return 0;
    }
};
int main()
{
    Stack<int> dch;
    dch.push(1);
    dch.push(2);
    dch.push(3);
    while(!dch.empty())
    {
        cout<<dch.top()<<endl;
        dch.pop();
    }
}

队列代码

/*
队列
2018年11月12日
*/
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
template<typename T>
class Queue{
/*
1.入队
2.出队
3.是否为空
4.个数
5.取队首元素
6.取队尾元素
*/
private:
    T date[MAXSIZE];
    int tail;
    int head;
public:
    Queue()
    {
        tail=head=0;
    }
    bool empty()
    {
        if(tail==head)
            return 1;
        return 0;
    }
    bool fill()
    {
        if((tail+1-head+MAXSIZE)%MAXSIZE==0)
            return 1;
        return 0;
    }
    int size()
    {
        return (tail-head+MAXSIZE)%MAXSIZE;
    }
    bool push(T val)
    {
        if(fill())
            return 0;
        date[tail]=val;
        tail=(tail+1)%MAXSIZE;
        return 1;
    }
    bool front(T &val)
    {
        if(empty())
            return 0;
        val=date[head];
        return 1;
    }
    bool pop()
    {
        if(empty())
            return 0;
        head=(head+1+MAXSIZE)%MAXSIZE;
        return 1;
    }
};
int main()
{
    Queue<int> dch;
    int val;
    dch.push(10);
    dch.push(11);
    dch.push(12);
    dch.push(13);
    while(!dch.empty())
    {
        dch.front(val);
        cout<<val<<endl;
        dch.pop();
    }
}

 

所有代码均经过调试

posted @ 2018-11-12 19:08  _年少有为  阅读(420)  评论(0编辑  收藏  举报