实验二+栈和队列的应用+

2019-06-11 13:17

攀枝花学院数据结构第三次实验

实验二 栈和队列的应用

1、实验目的

(1)熟练掌握栈和队列的结构,以及这两种数据结构的特点;

(2)能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空的判断条件及描述方法;

(3)熟练掌握链队列和循环队列的基本运算,并特别注意队列满和队列空的判断条件和描述方法;

2、实验内容

利用栈的基本操作实现将任意一个十进制整数转化为R进制整数.

3、实验步骤

(1)理解栈的基本工作原理;

(2)仔细分析实验内容,给出其算法和流程图; (3)用C语言实现该算法;

(4)给出测试数据,并分析其结果; (5)在实验报告册上写出实验过程。

4、实验帮助

算法为:

1) 定义栈的顺序存取结构

2) 分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等) 3) 定义一个函数用来实现上面问题: 十进制整数X和R作为形参 初始化栈

只要X不为0重复做下列动作

将X % R入栈 X=X/R

只要栈不为空重复做下列动作

栈顶出栈 输出栈顶元素

程序代码:

# include # include

typedef struct zan {

int data[100]; int top; }seqstack;

//置空栈

seqstack *intseqstack() {

seqstack *s;

s=(seqstack *)malloc(sizeof(seqstack)); s->top=-1; return s; }

//判断空栈

int empty_seqstack(seqstack *s) { if(s->top==-1)return 1;//为空栈 else return 0; }

//入栈

int push_seqstack(seqstack *s ,int x) {

if(s->top==99)return 0;//栈满不能入栈 else { s->top++;

s->data[s->top]=x; return 1; } }

//出栈

int pop_seqstack(seqstack *s) { int a;

if(empty_seqstack(s))return 0;//栈空不能出栈

else { a=s->data[s->top];//取出栈顶元素,并赋给x s->top--; return a; } }

int main() {

int x,r,c=0; seqstack *s;

s=intseqstack();//初始化,建立空栈

printf(\请输入要转换的整型:\scanf(\

printf(\请输入要转换的:\scanf(\

while(x!=0)//求余入栈 {

push_seqstack(s ,x%r); x=x/r; }

while(!empty_seqstack(s))//出栈 {

c=pop_seqstack(s); printf(\}

printf(\return 0; }


实验二+栈和队列的应用+.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:创建语言文字示范校解说词

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: