zoukankan      html  css  js  c++  java
  • 数据结构之 栈和队列(实验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();
        }
    }

    所有代码均经过调试

  • 相关阅读:
    快速击键(MyEclipse编写的QuickHit项目)
    Java语言中的修饰符
    Java中的接口
    建造者模式应用场景
    原型设计模式
    转:fortios 5.4后门植入
    转:json注入
    linux tips
    资料收集
    转:nginx+CGI/FASTCGI
  • 原文地址:https://www.cnblogs.com/dchnzlh/p/10427300.html
Copyright © 2011-2022 走看看