定义:栈是限定仅在表尾进行插入或者删除操作的线性表。因此对栈来说,尾端有其特殊含义,称为栈顶(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<<"The stack is full."<<endl;}
}

出栈:

void pop(Stack &s,int &x)
{//判断栈是否为空,为空返回trueif(!isEmpty(s)){x=s.data[--s.top];}else {cout<<"The stack is empty."<<endl;}
}

输出栈中的元素:

void showStack(Stack s)
{int i=s.top-1;cout<<"stack:";while(!isEmpty(s)&&i>=0){cout<<s.data[i--]<<" ";}cout<<endl;
}

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

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

C语言——顺序栈(Stack)相关推荐

  1. 停车场管理系统(C语言顺序栈+链栈+链队列)

    一.实验目的 1.根据停车场管理系统的要求,利用结构化程序设计方法以及C的编程思想来完成系统的设计,使用数据结构中的栈.队列进行分析: 2.按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用 ...

  2. c语言二进制转换算法栈,用C语言顺序栈实现十进制和二进制的转换

    用C语言顺序栈实现十进制和二进制的转换 #include #include #include #define M 100 typedef int datatype; typedef struct{ d ...

  3. c语言顺序栈完整程序,顺序栈的基本操作(C语言)

    由于现在只学了C语言所以就写这个C语言版的栈的基本操作 这里说一下 :网上和书上都有这种写法 int InitStack(SqStack &p) &p是取地址  但是这种用法好像C并不 ...

  4. C语言顺序栈实现代码

    顺序栈 :它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作. sqstack.h  //顺序栈头文件(在内存中分配一段连续的存储空间存 ...

  5. 栈的删除函数c语言,顺序栈的插入和删除

    <顺序栈的插入和删除>由会员分享,可在线阅读,更多相关<顺序栈的插入和删除(5页珍藏版)>请在人人文库网上搜索. 1.实验四顺序栈的插入和删除姓名:学号: 日期:一.实验目的: ...

  6. C语言顺序栈简单实现

    代码实现: /*顺序栈:实现接口:创建栈判栈空判栈满返回栈顶元素入栈出栈 */ #include <stdio.h> #include <stdlib.h>#define ST ...

  7. 顺序栈十进制转八进制C语言,顺序栈实现十进制跟八进制之间的转换

    顺序栈实现十进制和八进制之间的转换 顺序栈实现十进制和八进制之间的转换 (1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack(  struct  sq ...

  8. 判断字符串是否为回文(C语言 顺序栈)

    首先我们需要确定思路,如何用栈来判断字符串是否为回文. 1.栈是先进后出 2.回文是指正读反读均相同的字符序列 从这两点很容易就可以联想到一个方法,我们先将字符串全部存进去栈中,再将它全部出栈,进行对 ...

  9. c语言中初始化的主要作用,C语言初始化——栈的初始化

    栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出.栈底是第一个进栈的数据所处的位置,栈顶是最后一个进栈的数据所处的位置. 1.满栈与空栈 根据SP指针指向的位置,栈可以分 ...

最新文章

  1. mysql数据表设计要点以及快门
  2. 5个令人震惊的统计数据证明日志不足
  3. 操作系统概述 操作系统第一章知识点归纳总结
  4. Spring3集成Swagger2遇到问题总结
  5. linux shell 命令记录,linux常用shell命令记录
  6. python中的join函数连接dataframe_python pandas处理CSV文件并使用join()方法拼接两个dataframe...
  7. Lync 地址簿同步知识
  8. [硬件选型] 工业相机之相机分类
  9. 大理大学 计算机研究生分数线,大理大学2018年研究生复试分数线
  10. 按位与、按位异或、按位取反
  11. 机器学习中几种常见的乘积(product)
  12. 艾司博讯:拼多多推广计划点击价格设置
  13. 基于springboot特色农产品电商平台毕业设计-附源码211515
  14. background图片叠加_java实现图片的叠加效果
  15. ansible的使用
  16. CAN收发器 评估标准理解
  17. turtle画樱花树林
  18. 使用ASP.NET Core和Hangfire实现HTTP异步化方案
  19. 课程学习:Linux系统管理
  20. QT开发(一)—— 安装QT Creator,创建属于你的Hello QT

热门文章

  1. HTTP Authentication(HTTP认证)(转)
  2. Python自动化运维之常用模块—logging
  3. 中美共建大数据创新研究中心
  4. Binary XML file line #2: You must supply a layout_height attribute inflate
  5. Eclipse jetty和plugin 的结合使用
  6. OpenSSL加密与证书
  7. mysql时区设置gmt_将MySQL数据库时区设置为GMT
  8. 软件项目经理应该具备的心态
  9. 如何解决android studio的模拟器有密码的问题
  10. mapreduce yarn内存参数