c语言二进制转换算法栈,用C语言顺序栈实现十进制和二进制的转换
用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语言顺序栈实现十进制和二进制的转换相关推荐
- 【数据结构】栈:Java实现顺序栈栈应用浅析
1.栈是什么 定义:后进者先出,先进者后出,这就是典型的"栈"结构 操作特性:栈是一种"操作受限"的线性表,只允许在一端插入和删除数据. 使用场景:当某个数据集 ...
- 黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)
C语言 链表基础知识清晰讲解(黑马) 讲的蛮好,就是音质不太好,有时听不清讲的啥! [黑马]数据结构与算法之线性表(链表/栈/队列/顺序表)[配套源码 嘛蛋,看错了,这是java的... 文章目录 链 ...
- LRU算法确定最后使用时间的顺序-栈
用一个栈保留页号.每当访问一个页面时,就把它从栈中取出放在栈顶上.这样一来,栈顶总是放有目前使用最多的页,而栈底放着目前最少使用的页.由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来.在最 ...
- 数据结构遍历顺序栈_数据结构:顺序栈的实现
数据结构:顺序栈的实现 1.快速开始 栈是一种遵循元素后进(Push)先出(Pop)规则的线性表,即最后加入的元素最先出来,它的实现可以用数组或者链表. 它的特点如下: 后入先出,先入后出. 除了头尾 ...
- (王道408考研数据结构)第三章栈和队列-第一节:栈基本概念、顺序栈和链栈基本操作
文章目录 一:栈基本概念 (1)栈的定义 (2)压栈和出栈 (3)进栈出栈变化形式 (4)栈的操作 二:栈的顺序存储结构及其操作实现 (1)顺序栈的定义 (2)进栈 (3)出栈 (4)读取栈顶元素 ( ...
- 栈的操作(入栈、出栈)之一:顺序栈
栈操作原则 使用栈操作数据,必须遵循"先入后出"的原则: 栈操作之顺序栈 使用顺序表实现栈的存储结构,本质上是数组,数组的一端做栈底,另一端做栈顶: 一个数组其下标最低的位置可当做 ...
- 栈详解(顺序栈和链栈)
栈 什么是栈? 顺序栈 链栈 什么是栈? 栈是一种基本数据结构,因其拥有后进先出的特点(Last in First out),也就是LIFO,栈的一种常见用途就是用来判断一串字符中的括号是否有效. 括 ...
- 栈的顺序存储实现(顺序栈)
目录 1.初始化 2.判断栈是否为空 3.入栈 4.出栈 5.读取栈顶 6.top指针初始化为0的情况 7.共享栈 补充一个小知识点:n个不同元素进栈,那么出栈元素不同的排列的个数为 . 上述公式被 ...
- 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc
<操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...
- 快速排序算法-c语言实现,快速排序算法实现(C语言)(转)
快速排序算法 的基本思想是:将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一 部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直 到所有要进行排序的数据 ...
最新文章
- 使用Windows7上的VS Code打开远程机Ubuntu上的文件操作步骤
- VMware vSphere Replication 5.5 安装配置【展现虚拟化商业价值征文大赛】
- u-boot中添加自定义命令
- [数分提高]2014-2015-2第7教学周第2次课 (2015-04-16)
- 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群
- 从bsp redirect到ui5_ui5
- centos7装完chrome无法使用yum问题解决
- mysql为数据库表起别名的注意事项
- CSU-1975 机器人搬重物(BFS)
- unittest测试框架详谈及实操(一)
- 安卓 linux arm go,go arm、android版本
- [2018.10.15 T1] 或
- 现代操作系统 第三章 内存管理 习题
- 从零开始Unity引擎学习
- python就业方向有哪些?
- 错误:java 找不到符号
- 免费图片验证码识别方法,支持旋转图片识别
- Python——requests模块详解
- 低代码助力生产管理:离散型制造业MES系统
- nc命令卡住不返回的分析