/*
实验3:输入一组整型元素序列,建立一个链栈,
实现该链栈的入栈和出栈操作,并实现10进制到2进制的转化。
*/
#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
typedef int SElemType;
typedef int Status;
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef struct {
SElemType *base; //在栈构造之前和销毁之后,base的值为NULL
SElemType *top; //栈顶指针
int stacksize; //当前已分配的存储空间,以元素为单位
}SqStack;
//构造一个空栈
Status InitStack(SqStack &S) {
S.base = (SElemType * )malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base) exit(OVERFLOW); //存储分配失败
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
//获得栈顶元素
Status GetTop(SqStack S,SElemType &e) {
if(S.top==S.base) //判断栈是否为空
return ERROR;
e = *(S.top-1); //用e返回S栈顶元素,并返回OK。
return OK;
}
//进栈
Status Push(SqStack &S, SElemType e) { //插入元素e为栈顶元素
if(S.t
【数据结构】栈的入栈和出栈操作,并实现栈的进制转换应用
最新推荐文章于 2024-09-18 18:01:09 发布
本文详细探讨了栈的入栈和出栈操作,深入解析了栈这一数据结构的工作原理。同时,通过实例介绍了如何利用栈实现不同进制之间的转换,展示了栈在实际问题解决中的应用。
摘要由CSDN通过智能技术生成