#include <iostream>
using namespace std;
#define MAXSIZE 100
typedef int Selemtype;
typedef int Status;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef struct{
Selemtype *top;
Selemtype *base;
int stacksize;
}SqStack;
//算法3.1 顺序栈的初始化
Status InitStack(SqStack &S)//构造一个空栈
{
S.base=new Selemtype[MAXSIZE];
if(!S.base)
exit(OVERFLOW);
S.top=S.base;
S.stacksize=MAXSIZE;
return OK;
}
//算法3.2 顺序栈的入栈
Status Push(SqStack &S,Selemtype e)
{
if(S.top-S.base==S.stacksize)
return ERROR;//栈满
*S.top++=e;
return OK;
}
//算法3.3 顺序栈的出栈
Status Pop(SqStack &S,Selemtype &e)
{
if(S.top==S.base) return ERROR;//栈空
e=*--S.top;
return OK;
}
//算法3.4 取栈顶元素
Selemtype GetTop(SqStack S)
{
if(S.top==S.base) exit(1);
return *(S.top-1);
}
void add(SqStack L1,SqStack L2)//相加
{ int a,b,c,e,count=0;
int len1=L1.stacksize,len2=L2.stacksize;
int len&
用栈实现大整数的相加与相减
最新推荐文章于 2021-07-11 11:38:58 发布
本文介绍如何利用顺序栈实现大整数的相加和相减操作。通过初始化栈、入栈、出栈等基本操作,对两个大整数进行逐位计算,处理进位和借位的情况,最后输出结果。代码示例详细展示了加法和减法的完整过程。
摘要由CSDN通过智能技术生成