数据结构学习 65页 P1

    xiaoxiao2021-03-25  69

    实现代码:

    stack.h

    #include "utility.h" #include "typedef.h" const int maxstack = 10; class Stack{ public: Stack(); Error_code pop(); Error_code push(const Stack_entry &item); Error_code top(Stack_entry &item) const; bool empty() const; private: int count; Stack_entry entry[maxstack]; }; utility.h

    enum Error_code{success,overflow,underflow}; stack.cpp

    #include "stack.h" Error_code Stack::push(const Stack_entry &item){ /* Precondition: None; Postcondition: If the stack is not full, item is added to the top of the stack. If the stack is full, an Error_code of overflow is returned and the Stack is left unchanged. */ Error_code outcome = success; if(count>=maxstack) outcome = overflow; else entry[count++] = item; return outcome; } Error_code Stack::pop(){ /* Pre: none Post: If the stack is not empty, the top of the stack is removed. If the Stack is empty, an error_code of underflow is returned. */ Error_code outcome = success; if(count==0) outcome = underflow; else --count; return outcome; } Error_code Stack::top(Stack_entry &item) const{ /* Pre: None. Post: If the stack is not empty, the top of the stack is return in item. If the stack is empty, an Error_code of underflow is returned. */ Error_code outcome = success; if(count==0) outcome = underflow; else item = entry[count-1]; return outcome; } bool Stack::empty() const{ /* Pre: None. Post: If the stack is empty, true is returned. Otherwise false is returned. */ if (count>0) return false; else return true; } Stack::Stack(){ /* Pre: None. Post: The stack is initialized to be empty. */ count = 0; } typedef.h

    typedef int Stack_entry;

    转载请注明原文地址: https://ju.6miu.com/read-35302.html

    最新回复(0)