实现对顺序表的入栈出栈操作、利用栈将十进制转化成二进制输出【数据结构实验报告】
文章目录
- 一、入栈、出栈操作
- 二、利用栈操作将十进制的数转化为二进制
一、入栈、出栈操作
#include<iostream>
using namespace std;
#define MAXSIZE 10 //栈最大容量 typedef int SElemType; //别名int类型,表示栈元素
//顺序栈的存储结构
typedef struct
{SElemType *base; //栈底指针 SElemType *top; //栈顶指针int stacksize; //可用最大容量
}SqStack; //定义一个栈 //创建一个空栈
bool CreateStack(SqStack &S) //引用类型SqStack
{S.base= new SElemType[MAXSIZE]; //给栈底赋值一个空的int型数组if(!S.base) return(0); //存储分配失败 S.top= S.base; //初始top==base,栈顶等于栈底S.stacksize= MAXSIZE; //设置栈的最大容量 return(1);
}//入栈(压栈操作):插入元素e为新的栈顶元素
bool Push(SqStack &S, SElemType e)
{if(S.top-S.base==S.stacksize) return(0); //栈满报错*S.top++=e; //给栈顶指针赋值,并向上移动栈顶指针return(1);
} //出栈(弹栈):删除S的栈顶元素,返回被出栈的数
bool Pop(SqStack &S, SElemType e)
{if(S.top==S.base) return(0); //栈空e= *--S.top; //出栈后栈顶减1 return(1);
}//获得栈元素:返回栈顶元素,不修改栈指针
SElemType GetTop(SqStack &S)
{if(S.top != S.base) //若栈不为空 return *(S.top-1);
}int main()
{SElemType E; //用于存放出栈后的元素 SqStack s;CreateStack(s); //创建一个空栈 //入栈三个元素:77、88、99Push(s, 77); Push(s, 88); Push(s, 99); cout << "入栈后栈顶:" << GetTop(s) << endl; //输出栈顶Pop(s, E); //出栈一次 cout << "出栈后栈顶:" << GetTop(s) << endl; //输出栈顶
}
二、利用栈操作将十进制的数转化为二进制
#include<iostream>
using namespace std;
#define MAXSIZE 10 //栈最大容量 typedef int SElemType; //别名int类型,表示栈元素
//顺序栈的存储结构
typedef struct
{SElemType *base; //栈底指针 SElemType *top; //栈顶指针int stacksize; //可用最大容量
}SqStack; //定义一个栈 //创建一个空栈
bool CreateStack(SqStack &S) //引用类型SqStack
{S.base= new SElemType[MAXSIZE]; //给栈底赋值一个空的int型数组if(!S.base) return(0); //存储分配失败 S.top= S.base; //初始top==base,栈顶等于栈底S.stacksize= MAXSIZE; //设置栈的最大容量 return(1);
}//入栈(压栈操作):插入元素e为新的栈顶元素
bool Push(SqStack &S, SElemType e)
{if(S.top-S.base==S.stacksize) return(0); //栈满报错*S.top++=e; //给栈顶指针赋值,并向上移动栈顶指针return(1);
} //出栈(弹栈):删除S的栈顶元素,返回被出栈的数
bool Pop(SqStack &S, SElemType e)
{if(S.top==S.base) return(0); //栈空e= *--S.top; //栈顶减1 return(1);
}//获得栈元素:返回栈顶元素,不修改栈指针
SElemType GetTop(SqStack &S)
{if(S.top != S.base) //若栈不为空 return *(S.top-1);
}int main()
{int N, r=2, j; //因为是二进制,所以r=2 SElemType E; //存放被出栈的数 //SqStack<int>a(10);SqStack s;CreateStack(s); //创建一个空栈 cout << "请输入要转换的数据:" << endl;cin >> N;//将十进制转成二进制:依次入栈 while(N!=0){j=N%r;Push(s,j);N=N/r;}//输出栈元素:二进制数 while(s.top != s.base){cout << GetTop(s);Pop(s, E); }
}
实现对顺序表的入栈出栈操作、利用栈将十进制转化成二进制输出【数据结构实验报告】相关推荐
- 顺序表(Seqlist)链表(List)的基础操作
描述: 顺序表和链表是数据结构的基础结构之一,同样也是面试的基础.初学者对于Seqlist和List的增删改查的基础练习,为其后的Tree,HashTable,Binary Linked List,T ...
- 顺序表的操作例题——已知一个顺序表L, 其中的元素递增有序排列,设计一个算法,插入一个元素x (x为int 后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。
一.[题目描述]: 已知一个顺序表L, 其中的元素递增有序排列,设计一个算法,插入一个元素x (x为int 后保持该顺序表仍然递增有序排列(假设插入操作总能成功). 二.[题目分析]: 由题干可知,解 ...
- 第3关:顺序表的按照序号查找值操作
任务描述 本关任务:编写顺序表的按照序号i查找数据元素值的操作函数. 相关知识 顺序表L已存在,先判断i值是否合法,如果合法,将顺序表L中第i个数据元素的值赋给e,e要带出函数体,类型声明为引用. 编 ...
- C案例:创建顺序表并进行增删改查操作
一.顺序表概述 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素.使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中 ...
- 实现一个顺序表的建立、查找、插入和删除操作【数据结构实验报告】
文章目录 一.实验目的 二.算法说明 三.算法实现 四.测试效果 一.实验目的 1.熟悉将算法转换为程序代码的过程. 2.了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的c语言描述方法. 3.熟练掌 ...
- 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数:然后按顺序每五个数求出一个平均值,放在另一个数组中并输出. var arr = [];for (var i = 1; i <= 6 ...
- 第4关:顺序表的按照值查找序号操作
任务描述 本关任务:编写顺序表按照值查找序号操作的函数. 相关知识 在顺序表L找第一个值为e的元素,找到后返回其逻辑序号,否则返回0. 注意:由于线性表的逻辑序号从1开始,这里用0表示没有找到值为e的 ...
- 十进制转换成二进制 (栈)
十进制转换成二进制 (栈) 首先,转化的思路是 辗转取余法.比如说n = 5,先取模(5%2)获得1,然后取余并将其赋值给本身,得到n = 2:再取模得到0,取余之后n = 1:对1取模(1%2)得到 ...
- 北京理工大学计算机实验四报告表,北京理工大学数据结构实验报告实验四
北京理工大学数据结构实验报告实验四 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 <数据结构与算法设计>实验报告--实 ...
最新文章
- XML publisher 填充空白行数
- 区块链BaaS云服务(10)用友iuap区块链平台
- Dubbo源码分析系列-深入Dubbo SPI机制
- javascript this 详解
- 计算机专业教学实施,中职计算机专业教学项目的设计与实施
- CSS中给表格的第一列及最后一列设置不同的样式
- 多页Excel转换成PDF时如何保存为单独文件
- Docker 比较好的新入门教程
- vi编辑器编辑超大文件。
- java 邮件发送乱码_java邮件发送乱码解决方法
- Java排序算法——插入排序
- xp计算机用户名和密码忘记了怎么办,xp电脑开机密码忘记了怎么办,xp忘记开机密码的解决方法...
- docker exec -it进入及退出容器
- CSDN之每日IT冷知识答案大全
- Android Studio Error:前言中不允许有内容
- WSL无法访问网络的解决办法
- Flatten()详解
- 《技术立国》——日立的小平浪平传
- matlab函数之diag
- php fcgi 配置,apache使用fcgi配置PHP环境的步骤
热门文章
- uni 修改数据页面不重新渲染
- 500内部privoxy错误_【热议】喝崂山啤酒中奖500听,却只能兑换500毫升?!
- pcb钻孔披锋改善报告_铜基板的小孔加工改善研究
- php echo和evlo,PHP中常用的字符串函数
- section怎么制造图框_cad中如何制作带属性块的图框 - CAD自学网
- 命运歌姬服务器停服维护中,命运歌姬3月4日更新什么?命运歌姬3月4日更新维护公告[多图]...
- c语言黑色星期五公式,求黑色星期五问题~
- vue 文件导入服务器,Vue 如何import服务器上的js配置文件
- 104.202.60.2/.index.php,web扫描
- linux 目录 读写,Linux C 文件与目录3 文件读写(示例代码)