栈基本知识点及基本运算的实现

什么是栈:

      栈是一种只能在一端插入或删除的线性表。在表中,允许进行插入或删除的一端叫做栈顶。(ps:我觉得栈就是一个数组,栈顶就是下标)表的另一端称为栈底,当栈中没有元素时称为空栈,栈的插入称为入栈或进战,栈中数据元素的删除称为出栈或退栈。

栈的特点:

      后进先出(Last in First Out ),就是说后进的数据元素先出栈。每次进栈的数据元素都放在原来栈顶元素之前成为新的栈顶元素,每次出栈的数据元素都是当前栈顶元素。

栈的基本形式

ADK Stack

{

    数据对象;

    栈顶指针;

}

栈空条件;

 s->top==-1

栈满条件:

s->top==maxsize-1

元素的进栈操作

先将栈顶指针加一,然后将元素放在栈顶指针处

元素出栈操作

先将栈顶元素取出,然后栈顶指针减一

栈的基本运算的实现

创建栈

void InStack(SqStack* &s)

{

      s=(SqStack*)malloc(sizeof(SqStack));

      s->top=-1;

}

销毁栈

void DestoryStack(SqStack* &s)

{

    free(s);

}

判断栈是否为空

bool StackEmpty(SqStack* &s)

{

   return (s->top==-1);

}

进栈

bool Push(SqStack* &s,int e)

{

  s->top++;

   s->data[s->top]=e;

   return true;

}

出栈

bool Pop(SqStack* &s,int e)

{

   if(s->top==-1)

   return false;

   e=s->data[s->top];

   s->top--;

   return true;

}

取栈顶元素

bool GetTop(SqStack* &s,int e)

{

    if(s->top==-1)

    return false;

    e=s->data[s->top];

    s->top--;

    return true;

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值