潍坊市论坛

首页 » 分类 » 常识 » 数据结构实验二实验题1使用顺序栈将十进
TUhjnbcbe - 2021/6/22 21:50:00
白癜风该怎么治 http://m.39.net/pf/a_4443995.html

实验题1:使用顺序栈将十进制整数转换成八进制

一、实验目的

领会顺序栈存储结构和掌握顺序栈中各种基本运算算法设计,并掌握栈在求解数制转换问题中的应用。

二、实验环境

VC++6.0

三、实验准备

(1)复习课件中理论知识

(2)练习课堂所讲的例子

四、实验内容

编写一个程序SqStack.cpp,实现顺序栈的各种基本运算(假设顺序栈的数据元素类型ElemType为int),并在此基础上设计一个主程序exp1.cpp,完成如下功能:

(1)初始化顺序栈s;

(2)判断栈s是否为空;

(3)判断栈s是否已满;

(4)获取栈顶元素e;

(5)入栈操作

(6)出栈操作;

(7)释放栈;

(8)编写数制转换函数conversion();

(9)main函数中调用该函数进行测试;

五、实验步骤

六、实验总结

附:源代码

#includeiostream

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

#defineMAXSIZE

typedefintStatus;

typedefintSElemType;

typedefstruct//定义栈

{

SElemType*base;

SElemType*top;

intstacksize;

}SqStack;

StatusInitStack(SqStackS)//构造一个空栈

{

S.base=newSElemType[MAXSIZE];

if(!S.base)exit(OVERFLOW);//存储分配失败

S.top=S.base;

S.stacksize=MAXSIZE;

returnOK;

}//InitStack初始化

StatusPush(SqStackS,SElemTypee)//插入元素e为新的栈顶元素

{

if(S.top-S.base==S.stacksize)

returnERROR;//栈满

*S.top++=e;

returnOK;

}//Push入栈

StatusPop(SqStackS,SElemTypee)//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR

{

if(S.top==S.base)returnERROR;

e=*--S.top;

returnOK;

}//Pop出栈

StatusStackEmpty(SqStackS)

{

if(S.top==S.base)

returnOK;

else

returnERROR;

}

voidconversion(intN)//构造空栈

{

inte;

SqStackS;

InitStack(S);

while(N)

{

Push(S,N%8);

N=N/8;

}

while(!StackEmpty(S))

{

Pop(S,e);

coute;

}

}

intmain()

{

intn;

cinn;

conversion(n);

return0;

}

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: 数据结构实验二实验题1使用顺序栈将十进