数据结构 栈 :一文搞懂栈【附带 lettcode 刷题】1000字

看完本章也可以刷下题:
栈的算法题 Offer 09:用两个栈实现队列

1.什么是栈?

大家知道刷盘子不 ,刷完一个盘子,放在最上面。 用盘子的时候,拿最上面的盘子用即可。
在这里插入图片描述
栈的数据 就相当于盘子, 往上放盘子 就相当于 添加数据, 用盘子时 ,把第一个盘子拿出来 就相当于 删除数据。 大家可以想想自己平时 洗完盘子 ,是如何放的? (尤其是结婚的 男同胞们。。)

显而易见,栈 的数据 是先来后删除 (最底下的盘子 第一个进栈 ,最后一个拿走)

这就是栈:数据 先进后出,而且不能在中间 插入数据, 不然盘子可就被整的乱套了。

这时候 老婆。。。。用她那15厘米的大砍刀。。。。(不敢想象。。。。)    .
  1. 栈 底 栈顶
    在这里插入图片描述

栈的定义

定义栈:

  // 定义栈
    
     # define MaxSize =10;
     typedef struct {
    
    
          element data[];    //数组存放数据 element :类型 可以是 int char long 。。。。
          int top ; //栈顶 指针
          int bottom ;// 栈底 指针

          } sqstack
     
         
         
 

栈的初始化

 void InitStack ()
 {
    
    
   Sqstck q;        //
   q.top =0;
  }

栈的增 删 改查

       增加
         void push (sqstack &l , element x)
         {
    
    
           if (top > MaxSize-1){
    
    return false}
           q.data[top]  = x ; 
            top=top+1;
            return ture;
   
        }


        删除
         void pop (sqstack &l , element &x)
          {
    
    
              if (top < 0){
    
    return false}
             q.data[top]  =null; 
            top=top-1;
            return ture;
           

           }
           

看完本章也可以刷下题:
栈的算法题 Offer 09:用两个栈实现队列

猜你喜欢

转载自blog.csdn.net/leader_song/article/details/123463762
今日推荐