首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言——顺序栈

定义:栈是限定仅在表尾进行插入或者删除操作的线性表。因此对栈来说,尾端有其特殊含义,称为栈顶(top),相应的表头端称为栈底(bottom)。不含元素的空表称为空栈。

栈的特性:栈又称为先进后出的线性表。

下面我们来利用顺序栈实现基本的栈的操作:

先定义顺序栈:

#define MAXSIZE 10

typedef struct {

int data[MAXSIZE];//空间--静态分配

int top;//栈顶

}Stack;

其次对栈进行初始化

void initStack(Stack &s)

{

s.top=0;//栈为空

}

入栈操作:

//进栈(压栈)

void push(Stack &s,int x)

{

if(!isFull(s))//定义一个函数判断栈里面是否满了,满的话返回true;

{

s.data[s.top++]=x;

}

else

{

cout

}

}

出栈:

void pop(Stack &s,int &x)

{

//判断栈是否为空,为空返回true

if(!isEmpty(s))

{

x=s.data[--s.top];

}

else

{

cout

}

}

输出栈中的元素:

void showStack(Stack s)

{

int i=s.top-1;

cout

while(!isEmpty(s)&&i>=0)

{

cout

}

cout

}

顺序栈的基本操作如上所示。大家是否掌握了呢??下面给大家出一个题目:输入十进制数据,将十进制数据转化为二进制数据,大家想想如何利用栈实现呢??给大家一点提示栈是先进后出!!!

如果大家对C/C++感兴趣的话,本小编这里准备了一大堆的学习资料可以免费分享给有需要的朋友们,学习群:前面八七三,中间五二一,后面八零三。连起来就可进群然后免费领取一份学习资料哦!!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190924A0A4L200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券