本文共 1641 字,大约阅读时间需要 5 分钟。
写这段代码就感觉舒服很多,很快完成,可能本身就比较简单吧。
使用了一个模板类来实现栈的顺序存储结构的实例化,代码及函数功能如下:templateclass sqStack { private: T data[MAXSIZE]; int top; //top指向栈的栈顶元素而不是栈顶的下一个元素public: sqStack(); //默认构造函数 T GetTop() const; //获得栈顶元素,并返回 bool Push(const T &e); //将新元素压入栈 bool Pop(); //弹出栈顶元素 bool isEmpty() const; //判断栈是否为空 bool isFull() const; //判断栈是否满 void ClearStack(); //清空栈};
栈的顺序存储结构头文件
#pragma once#ifndef STACK_H_#define STACK_H_#define MAXSIZE 1000templateclass sqStack { private: T data[MAXSIZE]; int top;public: sqStack(); T GetTop() const; bool Push(const T &e); bool Pop(); bool isEmpty() const; bool isFull() const; void ClearStack();};template sqStack ::sqStack() { top = -1;}template T sqStack ::GetTop() const{ if (isEmpty()) { cout << "The stack is empty!\n"; exit(EXIT_FAILURE); } else return data[top];}template bool sqStack ::Push(const T &e){ if (isFull()) return false; else { top += 1; data[top] = e; }}template bool sqStack ::Pop(){ if (isEmpty()) return false; else { top -= 1; } return true;}template bool sqStack ::isEmpty() const{ return (top == -1);}template bool sqStack ::isFull() const{ return (top == MAXSIZE - 1);}template void sqStack ::ClearStack(){ top = -1;}#endif
栈的顺序存储结构使用示例
#include#include #include"stack.h"using namespace std;void main(){ sqStack book; book.Push("BOOK THIEF"); book.Push("KITE RUNNER"); book.Push("THE OLD MAN"); cout << book.GetTop() << endl; book.Pop(); cout << book.GetTop() << endl; book.ClearStack(); cout << book.GetTop() << endl;}
转载地址:http://qsyci.baihongyu.com/