国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx

上传人:b****2 文档编号:14822151 上传时间:2022-10-25 格式:DOCX 页数:8 大小:58.36KB
下载 相关 举报
国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx_第1页
第1页 / 共8页
国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx_第2页
第2页 / 共8页
国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx_第3页
第3页 / 共8页
国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx_第4页
第4页 / 共8页
国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx

《国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。

国开作业《数据结构本》提交实验报告参考248Word文档下载推荐.docx

inttop;

//栈顶指针

}SeqStack;

//定义栈

ElemTypeelem[MaxSize];

intfront,rear;

//队首和队尾指针

}SqQueue;

//定义队列

//---初始栈函数

voidInitStack(SeqStack*&

s)

s=(SeqStack*)malloc(sizeof(SeqStack));

s->

top=-1;

}

//----进栈函数

intPush(SeqStack*&

s,ElemTypee)

if(s->

top==MaxSize-1)

return0;

top++;

data[s->

top]=e;

return1;

//---显示栈函数

voidDispStack(SeqStack*s)

inti;

for(i=s->

top;

i>

=0;

i--)

printf("

%c"

s->

data[i]);

printf("

\n"

);

//---显示栈底元素

voidDispBottomStack(SeqStack*s)

data[0]);

//先进后出,栈底元素为第一个元素,即data[0]

//---判空栈函数

intStackEmpty(SeqStack*s)

return(s->

top==-1);

//---出栈函数

intPop(SeqStack*&

s,ElemType&

e)

top==-1)

e=s->

top];

top--;

//---初始队列函数

voidInitQueue(SqQueue*&

q)

q=(SqQueue*)malloc(sizeof(SqQueue));

q->

front=q->

rear=0;

//---入队列函数

intInQueue(SqQueue*&

q,ElemTypee)

if((q->

rear+1)%MaxSize==q->

front)//队满

rear=(q->

rear+1)%MaxSize;

elem[q->

rear]=e;

//---出队列函数

intOutQueue(SqQueue*&

q,ElemType&

if(q->

front==q->

rear)//队空

front=(q->

front+1)%MaxSize;

e=q->

front];

//---判空队列函数

intQueueEmpty(SqQueue*q)

return(q->

rear);

//-----主程序

voidmain()

ElemTypee;

SeqStack*s;

(1)初始化栈s\n"

InitStack(s);

(2)栈为%s\n"

(StackEmpty(s)?

"

空"

:

非空"

));

(3)依次进栈元素a,b,c,d,e\n"

Push(s,'

a'

//入栈元素1

b'

//入栈元素2

c'

//入栈元素3

d'

//入栈元素4

e'

//入栈元素5

(4)栈为%s\n"

(5)从栈顶到栈底元素:

DispStack(s);

(6)栈底元素为:

DispBottomStack(s);

(7)出栈/入队列序列:

SqQueue*q;

InitQueue(q);

while(!

StackEmpty(s))

{

Pop(s,e);

//出栈

e);

InQueue(q,e);

//入队

}

(8)栈为%s,"

队列为%s\n"

(QueueEmpty(q)?

(9)出队列/入栈序列:

QueueEmpty(q))

{OutQueue(q,e);

//出队

Push(s,e);

//入栈

(10)栈为%s,"

free(q);

//释放队列

(11)从栈顶到栈底元素:

free(s);

//释放栈

程序运行结果如下:

2.2递归程序设计

给定一个5位的十进制正整数,用递归法分别编制程序:

(1)要求从低位到高位逐次输出各位数字。

(2)要求从高位到低位逐次输出各位数字。

(1)比较题中两种不同要求的递归程序设计和执行过程差别。

(2)正确理解递归程序的执行过程。

(3)显示计算结果。

【实验步骤】

点击“文件”→“新建”→对话窗口中“文件”→“c++SourceFile”→在“文件名”中

(2)输入“X1.cpp”→在“位置”中选择储存路径为“桌面”→“确定”,

(3)输入程序代码

#include<

math.h>

voidout(intn,inti)//从高位到低位输出函数

intx,y;

y=int(pow(10,i));

if(n!

=0)

x=n/y;

n=n-x*y;

printf("

%d"

x);

elseprintf("

0"

i--;

if(i>

=0)out(n,i);

voidout1(intm,intj)//从低位到高位输出函数

intx,z;

if(m!

x=int(m/10);

z=m-x*10;

m=x;

z);

j--;

if(j>

=0)out1(m,j);

intm,n,o,x,i,j;

输入需要排列的数字:

scanf("

%d"

&

o);

m=n=o;

x=n;

i=-1;

while(x!

x=x/10;

i++;

}//求出i为十进制正整数位数

j=i;

从高位到低位逐次输出各位数字:

out(n,i);

从低位到高位逐次输出各位数字:

out1(m,j);

程序运行结果如下:

实验结论:

栈和队列是运算受限制的线性表

栈:

后进先出(LIFO)

例:

进栈b,c,d,e,f出栈可能为f,e,d,c,b;

b,c,d,e,f;

c,b,e,d,f•••但不可能是e,d,f,b,c

队列:

先进先出(FIFO)

例:

入队1,2,3,4,5出队1,2,3,4,5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1