当前位置: 代码迷 >> 综合 >> 2022/1/13总结
  详细解决方案

2022/1/13总结

热度:34   发布时间:2023-12-05 11:21:05.0

今天主要学习了栈,因为我觉得要继续理解DFS,栈是必须要掌握的。栈是一种先进后出的数据结构,数据先进入的会较后一点出来。还要了解栈顶指针这一概念,栈顶指针始终指向栈的最上方元素,通常记为TOP,栈中没有元素时会令TOP为-1。

栈的操作:

1.清空

清空将栈顶指针TOP置为-1,表示栈中没有元素。

void clear()
{TOP = -1;
}

2.获取栈内元素的个数

TOP始终指向栈顶元素,而数组下标从0开始,所以,栈内元素的数为TOP+1。

int size()
{return TOP+1;
}

3.判空

如果TOP=-1,返回true,否则返回false

bool empty()
{if(TOP == -1){return true;}else {return false;}
}

4.进栈

将元素置于栈顶,TOP+1后,将元素存入TOP所指向的位置

void push(int x)
{st[++TOP] = x;
}

5.出栈

由TOP的定义可知,直接通过TOP减1就能实现

void pop()
{TOP--;
}

6.取栈顶元素top

由于TOP始终指向栈顶,因此,st[top]即为栈顶元素

int top()
{return st[TOP];
}

这些函数在使用了#include<stack>头文件后都可以调用,但需要注意,入栈和取栈顶元素的操作的前提是栈不能为空,因此,在使用pop()函数和top()函数前,应使用empty()函数来判断栈是否为空。