美文网首页
懒猫老师-数据结构-(2)堆栈作业1:实现顺序栈--搞定

懒猫老师-数据结构-(2)堆栈作业1:实现顺序栈--搞定

作者: heiqimingren | 来源:发表于2020-11-26 15:32 被阅读0次

    跟着老师做了一遍,效果很不错,成功了!!

    image.png
    image.png
    image.png

    源代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include "Stack.h"
    using namespace std;
    
    int main()
    {
        Stack s1(2);
        s1.push('a');
        s1.push('b');
        cout << s1.isFull() << endl;
        cout << s1.getTop() << endl;
        cout << s1.pop() << endl;
        cout << s1.pop() << endl;
        cout << s1.isEmpty() ;
        return 0;
    }
    

    Stack.h文件如下:

    //#pragma once
    
    
    const int MAX_SIZE = 100;
    
    class Stack
    {
    public:
        Stack();
        Stack(int s);
        ~Stack();
        void push(char ch);
        char pop();
        char getTop();
        bool isEmpty();
        bool isFull();
        void setNull();
    
    private:
        char *data;
        int size;
        int top;
    };
    

    Stack.cpp如下

    #include "Stack.h"
    
    
    Stack::Stack()
    {
        size = MAX_SIZE;
        top = -1;
        data = new char[MAX_SIZE];
    
    }
    
    
    Stack::~Stack()
    {
        delete[] data;
    }
    
    Stack::Stack(int s)
    {
        size = s;
        top = -1;
        data = new char[size];
    }
    
    void Stack::push(char ch)
    {
        if (!isFull())
        {
            data[++top] = ch; //将传入的ch值,传入数组data,但是传入之前,先将top自增1。很重要,这个细节
        }
        /*else
        {
        cout << "栈空间满了";         养成良好的编写风格,子程序不要有输出语句,就是单纯的一个小功能而已即可
        }*/
    }
    
    char Stack::pop()
    {
        if (!isEmpty())
        {
            return data[top--]; //将top的值,立返返回出去,然后在top自减一。很重要,这个细节
        }
    }
    
    char Stack::getTop()
    {
        if (!isEmpty())
        {
            return data[top]; 
        }
    }
    
    bool Stack::isEmpty()
    {
        if (top==-1)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    bool Stack::isFull()
    {
        if (top+1==size)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    void Stack::setNull()
    {
        top = -1;
    }
    

    相关文章

      网友评论

          本文标题:懒猫老师-数据结构-(2)堆栈作业1:实现顺序栈--搞定

          本文链接:https://www.haomeiwen.com/subject/hytziktx.html