当前位置: 首页 > news >正文

顺序栈的初始化,建立,插入,查找,删除。

---

顺序栈:普通数组保存方式,栈顶(max-1)为满,栈底(-1)为空;

////
//顺序栈的初始化,建立,插入,查找,删除。//
//Author:Wang Yong                        //    
//Date: 2010.8.19                         //
////
 
 
#include <stdio.h>
#include <stdlib.h>
 
#define  MAX 100                //定义最大栈容量
 
typedef int ElemType;
 
///
 
//定义栈类型 
typedef struct
{
    ElemType data[MAX];
    int top;
}SeqStack;
 
///
 
//栈的初始化
 
SeqStack SeqStackInit()
{
    SeqStack s;
    s.top = -1;
    return s;
}
 
///
 
//判断栈空的算法
 
int SeqStackIsEmpty(SeqStack s)
{
    if(s.top == -1)
        return 0;
    else
        return 1;
}
 
///
 
//进栈的算法
 
void SeqStackPush(SeqStack &s,ElemType x)
{
    if(s.top == MAX-1)              //进栈的时候必须判断是否栈满 
        printf("stack full\n"); 
    s.top++;
    s.data[s.top] = x;
}
 
//
 
//出栈的算法
 
ElemType SeqStackPop(SeqStack &s)
{
    if(s.top == -1)             //出栈的时候必须判断是否栈空 
        printf("stack empty\n");
    ElemType x;
    x = s.data[s.top];
    s.top--;
    return x;
}
 
//
int main()
{
    SeqStack  stack;
    stack = SeqStackInit();
    printf("请输入进栈的元素:"); 
    ElemType x;
    while(scanf("%d",&x) != -1)
    {
        SeqStackPush(stack,x);  
    }
    printf("出栈的结果:"); 
    while(stack.top != -1)
    {
        printf("%d ",SeqStackPop(stack));
    }
    printf("\n");
    return 0;
} 

 

 

 

 

---

转载于:https://www.cnblogs.com/Ph-one/p/6889683.html

相关文章:

  • 顺序队列的初始化,建立,插入,查找,删除。
  • 链队列的初始化,建立,插入,查找,删除。
  • 链栈的初始化,建立,插入,查找,删除。
  • 顺序串的初始化,建立,插入,查找,删除。
  • quick check
  • http://blog.csdn.net/renfufei/article/details/37725057/
  • github 博客模板
  • 好用的Markdown编辑器一览
  • 复旦大学考研科目
  • 51单片机GPIO口模拟串口通信
  • 第一部分软件工程基础[专业课考试1]
  • 第二部分计算机系统基础[专业课考试2]
  • 第三部分数据结构[专业课考试3]
  • 深入理解SP、LR和PC
  • 数据结构ADT是什么
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android系统模拟器绘制实现概述
  • express + mock 让前后台并行开发
  • httpie使用详解
  • Java精华积累:初学者都应该搞懂的问题
  • JWT究竟是什么呢?
  • leetcode388. Longest Absolute File Path
  • VuePress 静态网站生成
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 机器学习 vs. 深度学习
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 7行Python代码的人脸识别
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • %@ page import=%的用法
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一)基于IDEA的JAVA基础1
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 使窗口永不获得焦点
  • .net操作Excel出错解决
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []FET-430SIM508 研究日志 11.3.31
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)