用C语言顺序栈实现十进制和二进制的转换

#include

#include

#include

#define M 100

typedef int datatype;

typedef struct{

datatype data[M];

int top;

}seqstack;

void InitStack(seqstack *s){ //初始化顺序栈

s->top=-1;

}

int StackEmpty(seqstack *s){ //判断栈是否为空

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

else return 0;

}

seqstack *push(seqstack *s,datatype x){//元素入栈函数

if (s->top==M-1) return NULL;

else { s->top++;s->data[s->top]=x;}

return s; }

datatype pop(seqstack *s){ //元素出栈函数

datatype x;

x=s->data[s->top]; s->top--; return x;}

void main()

{ // 对于输入的任意一个非负十进制整数,打印输出与其等值的二进制数

seqstack *s;

datatype n,e;

int i=0,j=0;

scanf("%u",&n); // 输入非负十进制整数n

s=(struct seqstack*)malloc(sizeof(int));

if (s==NULL) exit(0);

InitStack(s); // 初始化栈

while(n) // 当n不等于0

{push(s,n%2); // 入栈n除以2的余数(2进制的低位)

i++; // 统计入栈元素个数

n=n/2;

}

while(j

{j++;

e=pop(s); // 弹出栈顶元素且赋值给e

printf("%d",e);

}

c语言二进制转换算法栈,用C语言顺序栈实现十进制和二进制的转换相关推荐

  1. 【数据结构】栈:Java实现顺序栈栈应用浅析

    1.栈是什么 定义:后进者先出,先进者后出,这就是典型的"栈"结构 操作特性:栈是一种"操作受限"的线性表,只允许在一端插入和删除数据. 使用场景:当某个数据集 ...

  2. 黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)

    C语言 链表基础知识清晰讲解(黑马) 讲的蛮好,就是音质不太好,有时听不清讲的啥! [黑马]数据结构与算法之线性表(链表/栈/队列/顺序表)[配套源码 嘛蛋,看错了,这是java的... 文章目录 链 ...

  3. LRU算法确定最后使用时间的顺序-栈

    用一个栈保留页号.每当访问一个页面时,就把它从栈中取出放在栈顶上.这样一来,栈顶总是放有目前使用最多的页,而栈底放着目前最少使用的页.由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来.在最 ...

  4. 数据结构遍历顺序栈_数据结构:顺序栈的实现

    数据结构:顺序栈的实现 1.快速开始 栈是一种遵循元素后进(Push)先出(Pop)规则的线性表,即最后加入的元素最先出来,它的实现可以用数组或者链表. 它的特点如下: 后入先出,先入后出. 除了头尾 ...

  5. (王道408考研数据结构)第三章栈和队列-第一节:栈基本概念、顺序栈和链栈基本操作

    文章目录 一:栈基本概念 (1)栈的定义 (2)压栈和出栈 (3)进栈出栈变化形式 (4)栈的操作 二:栈的顺序存储结构及其操作实现 (1)顺序栈的定义 (2)进栈 (3)出栈 (4)读取栈顶元素 ( ...

  6. 栈的操作(入栈、出栈)之一:顺序栈

    栈操作原则 使用栈操作数据,必须遵循"先入后出"的原则: 栈操作之顺序栈 使用顺序表实现栈的存储结构,本质上是数组,数组的一端做栈底,另一端做栈顶: 一个数组其下标最低的位置可当做 ...

  7. 栈详解(顺序栈和链栈)

    栈 什么是栈? 顺序栈 链栈 什么是栈? 栈是一种基本数据结构,因其拥有后进先出的特点(Last in First out),也就是LIFO,栈的一种常见用途就是用来判断一串字符中的括号是否有效. 括 ...

  8. 栈的顺序存储实现(顺序栈)

    目录 1.初始化 2.判断栈是否为空 3.入栈 4.出栈 5.读取栈顶 6.top指针初始化为0的情况 7.共享栈 补充一个小知识点:n个不同元素进栈,那么出栈元素不同的排列的个数为  . 上述公式被 ...

  9. 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc

    <操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...

  10. 快速排序算法-c语言实现,快速排序算法实现(C语言)(转)

    快速排序算法 的基本思想是:将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一 部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直 到所有要进行排序的数据 ...

最新文章

  1. 使用Windows7上的VS Code打开远程机Ubuntu上的文件操作步骤
  2. VMware vSphere Replication 5.5 安装配置【展现虚拟化商业价值征文大赛】
  3. u-boot中添加自定义命令
  4. [数分提高]2014-2015-2第7教学周第2次课 (2015-04-16)
  5. 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群
  6. 从bsp redirect到ui5_ui5
  7. centos7装完chrome无法使用yum问题解决
  8. mysql为数据库表起别名的注意事项
  9. CSU-1975 机器人搬重物(BFS)
  10. unittest测试框架详谈及实操(一)
  11. 安卓 linux arm go,go arm、android版本
  12. [2018.10.15 T1] 或
  13. 现代操作系统 第三章 内存管理 习题
  14. 从零开始Unity引擎学习
  15. python就业方向有哪些?
  16. 错误:java 找不到符号
  17. 免费图片验证码识别方法,支持旋转图片识别
  18. Python——requests模块详解
  19. 低代码助力生产管理:离散型制造业MES系统
  20. nc命令卡住不返回的分析

热门文章

  1. 次世代游戏场景间谍屋制作图文教程
  2. 意向IB课程,上海有哪些国际化学校可以选择?
  3. (五十六)c#Winform自定义控件-瓶子(工业)
  4. 【JAVA】String源码浅谈
  5. 画圣诞树的matlab程序,教你怎样用Python画了一棵圣诞树,快来学习
  6. JavaScript基础(第一部分)
  7. 管理中有效沟通的五个关键
  8. 计算机,计算机硬件和软件及Windows快捷键
  9. 美国有多少辆汽车? 05年毕业生经典面试题
  10. Redhat8—配置yum源