leetcode c++栈

栈(堆栈)
栈类似一个瓶子,只能从一个口进出,属于一种线性表数据结构。堆栈存在两种操作:插入与删除。
leetcode c++栈_第1张图片
瓶口就是栈顶,瓶底就是栈底,当栈里面没有元素时就是空栈。服从先进后出原则,越靠近瓶口的就越早出来。存储方式:顺序存储(类似数组,数组与容器,)与链式存储(类似单链表).
堆栈还可以分成:
静态栈:栈的大小固定,类似数组
动态栈:栈的大小会发生改变,类似链表
栈的操作
1.入栈 push()
2.出栈 pop()
3.空栈 empty()
4.获取当前元素则使用 top()
5.获取栈的大小size()
提示
当使用栈的时候,使用top前必须要判断一下栈是否为空,否则会出现下面的情况

Line 171: Char 16: runtime error: reference binding to misaligned address 0xbebebebebebec0ba for type ‘int’, which requires 4 byte alignment (stl_deque.h)
0xbebebebebebec0ba: note: pointer points here

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/…/lib/gcc/x86_64-linux-gnu/9/…/…/…/…/include/c++/9/bits/stl_deque.h:180:16

示例
leetcode c++栈_第2张图片
存在错误的代码

class Solution {
   
public:
    bool isValid(string s) {
   
       int length = s.length();
       if(length % 2!=0) return false;
       stack<int> st;
       for(int i=0;i<length;i++){
   
           if(s[i]=='(') st

你可能感兴趣的:(C++,leetcode,链表,数据结构)