数据结构与算法-栈

来源:互联网 发布:合肥房地产销售数据 编辑:程序博客网 时间:2024/05/22 14:43

定义:栈是一种特殊的有序表,因为其插入和删除都在一端进行。
栈是一种先进后出的结构,被操作的元素被称之为栈顶,栈在任何时候被操作的元素只有一个那就是栈顶元素。

实现:
1、数组
2、链表

栈的操作

isEmpty():判断栈是否为空push(stackItem):入栈pop():出栈

需要记录的数据
1、栈顶元素:在此关于栈顶元素有的认为是就是栈最上面的元素,也有的认为是栈顶元素位置的下一个位置,其实没有绝对的正确的说法,看自己的理解吧,怎么样理解都是可以的。
2、栈的大小

栈的实现(此处用数组进行实现)

定义头文件 stack.h

class stack(){    private:        int size;//此处top的初始值不同(0或者-1),对应的后续的入栈出栈操作也会不同        int top = -1;        int* a;    public:        stack(int size);        ~stack();        void push(int item);        int pop();        int getSize();        bool isStackEmpty();        bool isStackFull();}

栈的实现代码:stack.cpp

#include<stack.h>stack::stack(int size){    a = new int[size];    this->size = size;}stack::~stack(){    delete[] a;}bool stack::isStackEmpty(){    return top == -1;}bool stack::isStackFull(){    return top == size;}void stack::push(int item){    if(isStackFull())        print("the stack is full")'    else        a[++top] = item;}int stack::pop(){    if(isStackFull())        print("the stack is full");    else        return a[top--]}int stack::getSize(){    return size;}
原创粉丝点击