栈的操作:进栈和出栈

#include "stdafx.h"

#include "stack.h"

#define maxsize 20

typedef int Elemtype;

/*顺序存储—数组形式*/

struct stack

{

int data[maxsize];

int top;

};

void init(struct stack *ps)

{

ps->top = -;

}

void init2(struct Doublestack * ps)

{

ps->top1 = -;

ps->top2 =maxsize;

}

void print(int a[],int len)

{

int i;

// len = sizeof(a) / sizeof(a[0]);这样子你得不到长度的,此时a退化为了指针

for (i = ; i <= len - ; i++)

{

printf("%d\n", a[i]);

}

}

int push(struct stack * s, int e)

{

if (s->top == maxsize - )

return -;

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

return ;

}

Elemtype pop(struct stack *s)

{

int n;

if (s->top == )

return -;

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

return n;

}

//两栈共享

struct Doublestack

{

int data[maxsize];

int top1;

int top2;

};

int push_two(struct Doublestack *s, int e, int stackflag)

{

if (s->top1 == s->top2 - ) //full stack

return -;

if (stackflag == )

{

s->data[++s->top1] = e;

}

else if (stackflag == )

{

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

}

return ;

}

Elemtype pop_two(struct Doublestack *s, int stackflag)

{

int n;

if (stackflag == )

{

if (s->top1 == -) //s1 empty

return -;

n = s->data[s->top1--];

}

else if (stackflag == )

{

if (s->top2 ==maxsize) //s2 empty

return -;

n = s->data[s->top2++];

}

//printf("%d\n", n);

return n;

}

主函数

#include "stdafx.h"

#include "link.h"

#include "stack.h"

int main()

{

/*stack_test*/

//struct stack s;

//struct stack *ps = &s;

//init(ps);

struct Doublestack s;

struct Doublestack * ps = &s;

init2(ps);

int e = ;

int n;

//push( ps, e);

//push(ps, 2);

//print(ps->data,2);

//n = pop(ps);

//printf("%d\n", n);

push_two(ps, e,);

push_two(ps, , );

print(ps->data, );

n=pop_two(ps,);

printf("n =%d\n", n);

system("pause");

}

C语言栈与调用惯例

C语言栈与调用惯例 1.前言 最近在再看这本书,对程序的链接.装载与库有了更深入的认识.关于这本书的评价可以去豆瓣看看http://book.douban.com/su ...

C语言栈调用机制初探

学习linux离不开c语言,也离不开汇编,二者之间的相互调用在源代码中几乎随处可见.所以必须清楚地理解c语言背后的汇编结果才能更好地读懂linux中相关的代码.否则会有很多疑惑,比如在head.s中会 ...

C语言 栈 链式结构 实现

一个C语言链式结构实现的栈 mStack (GCC编译). /** * @brief C语言实现的链式结构类型的栈 * @author wid * @date 2013-10-30 * * @note ...

C语言 栈 顺序结构 实现

一个能够自动扩容的顺序结构的栈 ArrStack 实例 (GCC编译). /** * @brief C语言实现的顺序结构类型的栈 * @author wid * @date 2013-10-29 * ...

&lbrack;数据结构&rsqb;C语言栈的实现

有始有终,所以我准备把各种数据结构都讲一次,栈也分顺序存储和链式储存,这里我们选择链式存储来讲,顺序存储没有难度(链式其实也是) 作为数据结构中最简单的栈,这里不会说太多,首先考虑一下下面的model ...

C语言栈的实现

栈是常用的数据结构之一,下面给出一个链式栈的实现~~头文件Stack.h #ifndef Stack_H #define Stack_H typedef int Item; typedef struc ...

c语言栈的链表实现

#include #include #include"PublicDS.h" typedef int ElemTy ...

C语言 - 栈和单链表的实现

单链表:linkList.h linkList.c #ifndef LINKLIST_H_INCLUDE #define LINKLIST_H_INCLUDE #include

Go语言栈定义及相关方法实现

// stack 栈 package Algorithm import ( "errors" "reflect" ) // 栈定义 type Stack str ...

随机推荐

社区活动分享PPT:使用微软开源技术开发微服务

上周六在成都中生代技术社区线下活动进行了一个名为"微软爱开源-使用微软开源技术开发微服务"的技术分享. 也算是给很多不熟悉微软开源技术的朋友普及一下微软最近几年在开源方面所做的努力 ...

Objective-C之NSArray&lpar;数组&rpar;默认排序与自定义排序

在讲OC中数组的排序之前我先上一段代码,它是简单数组排序的一种方法(也就是元素是字符串或者数据的数组,因为后面要讲元素为类的数组排序) 代码1: NSArray *sortArr4 = [sortAr ...

Umbraco&lpar;7&rpar;-The Navigation Menu And A Parent Page with Infinite Children

原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/umbraco7the-navigation-menu-and-a-par ...

java知识积累——单元测试和JUnit(二)

首先来复习一下几个重要知识点,然后接着进行一些介绍.在上一篇文章中,我曾经贴过下面这张图片: 在Which method stubs would you like to create?这里,现在结合4 ...

&lbrack;一&rsqb;java环境变量的配置

1.JAVA_HOME(新建):D:\jdk1.6 2.classpath(新建): .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 3.path(新增):% ...

原 iOS面试题收集

原 iOS面试题收集 发表于2年前(2013-07-22 13:47)   阅读(369) | 评论(0) 4人收藏此文章, 我要收藏 赞0 听云性能监测产品App.Server.CDN免费试用,绑定 ...

基于JS的问卷调查

主要工作 因为代码不好展示,也不好截长图,可以去看我的GitHub地址:https://github.com/14glwu/MyBlog/blob/master/questionnaire.html ...

常用且难记的一些css

1.多行文字超出隐藏,自动追加 ... 移动端兼容更好,pc下只能兼容 Safari.Opera 以及 Chrome 等部分浏览器,挺常用. (注:为什么要同时加这几个css不在这里详细叙述,详见) ...

react安装

1. npm install -g create-react-app 2. create-react-app my-app 3. cd my-app npm start 4.浏览器打开  http:/ ...

IntelliJ IDEA(四) :Settings(上)

前言 IDEA是一个智能开发工具,每个开发者的使用习惯不同,如何个性化自己的IDEA?我们可以通过Settings功能来设置.Settings文件是IDEA的配置文件,通过他可以设置主题,项目,插件, ...

c语言限流,C语言—栈相关推荐

  1. c语言限流算法,分布式限流常用算法

    常见的限流方法有计数器.漏斗算法.令牌桶算法,各自也有各自的优缺点 ###一 计数器限流方法 计数器算法比较简单,即一段时间内的调用次数是有上限的,当大于最大请求次数,则拒绝服务 计数器算法伪代码: ...

  2. 服务熔断与限流:Sentinel

    目录 第一章 Sentinel的介绍 1.1.Sentinel是什么 1.2.Sentinel的特性 1.3.Sentinel的对比 第二章 Sentinel的安装与运行 2.1.下载Sentinel ...

  3. 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践

    目录导读 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践 1. 开源代码整体架构设计 2. 微服务逻辑架构设计 3. 微服务熔断降级与限流规划 3.1 微服务熔断 ...

  4. C语言IO流存储数据,C++的IO流

    1.回忆C语言的IO流 getchar()          //字符输入函数 putchar()          //字符输出函数 fgetc()/getc()     //字符输入函数 fput ...

  5. C语言实现了一个顺序栈(附完整源码)

    C语言实现了一个顺序栈 顺序栈 顺序栈结构示意图如下 C语言实现了一个顺序栈完整源码 顺序栈 用一段连续的存储空间来存储栈中的数据元素,比较常见的是用数组来实现顺序栈 顺序存储结构:1.元素所占的存储 ...

  6. c语言函数参数从右往左,C语言函数入参压栈顺序为什么是从右向左?

    看到有人提问到,在处理printf/cout时,压栈顺序是什么样的?大家都知道是从右往左,也就是说从右往左的计算,但是,这里的计算不等于输出. a++和++a的压栈的区别:在计算时,遇到a++会记录此 ...

  7. 我的全栈之路-C语言基础之C语言概述与开发环境搭建

    我的全栈之路-C语言基础之C语言概述与开发环境搭建 我的全栈之路 1.1 信息技术发展趋势 1.2 浅谈计算机系统架构 1.2.1 计算机系统架构概述 1.2.2 计算机硬件系统 1.2.2 计算机软 ...

  8. C语言堆栈入门——堆和栈的区别

    C语言堆栈入门--堆和栈的区别 2010-05-09 22:28:53|  分类: C/C++开发|举报|字号 订阅 下载LOFTER客户端      在计算机领域,堆栈是一个不容忽视的概念,我们编写 ...

  9. c语言读文件空格间隔,c语言文件流实现按单个词读取(以空格、分号等作间隔)...

    c语言文件流实现按词读取(以空格.分号等作间隔) 1.基本描述 在之前的作业中,认真编写代码,从中发现不少知识积累上的欠缺.编程中使用到的c语言文件读取,要求是按照获取到一个完整的词,并对其进行处理. ...

最新文章

  1. Seaborn使用set_context函数调整绘图标签和线条的大小、设置不同的模式、例如notebook模式、PPT模式、海报模式等、set_context函数可以指定绘图上下文并自动调整标签和线条
  2. java火山_各种排序算法java实现
  3. 数据库常用面试题(SQL Server) (转载)
  4. java常用工具类_java(二):工作中常用到的工具类
  5. SAP Fiori Launchpad的后台配置路径
  6. android TextView下划线,圆角边框,数逐字显示,虚线边框, 渐变色背景框, 阴影背景框
  7. log4j控制日志输出文件名称的两种方式
  8. ros先订阅后发布 无法收到消息的解决办法
  9. HTTP普及帖2:简单的HTTP(上)
  10. 概率就是个冷冰冰的坑
  11. 秒杀场景下MySQL的低效原因和改进
  12. 电影购票系统软件测试,软件测试(电影售票系统)
  13. 共享茶室小程序都具备哪些功能?
  14. mysql 1062_mysql #1062 报错
  15. 树莓派博通BCM2835芯片手册导读及io口驱动代码的实现
  16. 人教版初中计算机教案全本,人教版初中信息技术教案全集
  17. CiteSpace学习笔记(四)——功能区和参数区
  18. 系统安全及应用实验案例
  19. Python手撸机器学习系列(十五):简单神经网络
  20. mysql中Tinyint(1)和Tinyint(4)的区别

热门文章

  1. 华视伟业工业级传输设备 千兆4光8电交换机详细参数
  2. ECharts-Java 开源项目寻求合作维护
  3. 使用HackRF和外部时钟实现GPS欺骗实验
  4. 制作柔性电路的常用方法
  5. 蓝韵PACS工作站‘授权效验失败’问题解决!
  6. 【Elastic Stack上】Elastic Search快速入门,让你对ELK日志架构不再困惑
  7. 光纤之父高锟:从痴人说梦到诺贝尔物理学奖
  8. ubuntu查看支持的字体库
  9. mysql清空数据库表
  10. openlayers素材网站