数据结构学习 65页 P1

来源:互联网 发布:欧美搞笑电影 知乎 编辑:程序博客网 时间:2024/05/21 17:25

实现代码:

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;


0 0