第一范文网 - 专业文章范例文档资料分享平台

实验二 栈和队列的操作与应用

来源:用户分享 时间:2025/8/29 22:19:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

return FALSE; }

void conversion10_8( )

{ /* 对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数*/ SqStack s;

unsigned n; /* 非负整数*/ SElemType e;

InitStack(s); /* 初始化栈*/ printf(\;

scanf(\; /* 输入非负十进制整数n */ while(n) /* 当n 不等于0 */ {

n= n%8 ; /* 入栈n 除以8 的余数(8 进制的低位) */ S.base =n ; }

while(!StackEmpty(s)) /* 当栈不空*/ {

e*=S.top ; /* 弹出栈顶元素且赋值给e */ printf(\; /* 输出e */ }

printf(\; }

3.在SqStackUse.cpp 文件中,测试算法的调用,其中间接调用了顺序栈的其他基本算法。

typedef int SElemType; /* 定义栈元素类型为整型*/

#include \常量定义与系统函数原型声明,与实验一中的相同*/ #include \采用顺序栈的类型定义*/ #include \利用顺序栈的基本操作*/ void main()

{ conversion10_8(); /* 十进制数到八进制转换的验证*/ }

运行结果:

请将运行结果粘贴在此处

二、链式队列,利用队列的链式存储结构,设计一组输入数据(假定为一组整数),能够对链式队列进行如下操作:

. 初始化一个空队列,形成一个带表头结点的空队; . 完成一个元素的入队操作,修改队尾指针; . 完成一个元素的出队操作,修改队头指针;

1.文件LinkQueue.h 中实现单链队列--队列的链式存储结构的表示。 typedef struct QNode {

QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct {

QueuePtr front,rear; /* 队头、队尾指针*/ }LinkQueue;

2.文件LinkQueueAlgo.h 中实现的链队列的基本算法,其存储结构由LinkQueueDef.h 定义。

Status InitQueue(LinkQueue &Q) { /* 构造一个空队列Q */

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front)

exit(OVERFLOW); Q.front->next=NULL; return OK; }

int QueueLength(LinkQueue Q) { /* 求队列的长度*/ int i=0; QueuePtr p; p=Q.front;

while(Q.rear!=p) { i++; p=p->next; } return i; }

Status EnQueue(LinkQueue &Q,QElemType e) { /* 插入元素e 为Q 的新的队尾元素*/

QueuePtr p=(QueuePtr)malloc(sizeof(QNode)); if(!p) /* 存储分配失败*/ exit(OVERFLOW); p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; return OK; }

Status DeQueue(LinkQueue &Q,QElemType &e)

{ /* 若队列不空,删除Q 的队头元素,用e 返回其值,并返回OK,否则返回ERROR */ QueuePtr p; if(Q.front==Q.rear) return ERROR; p=Q.front->next; e= p->data;

Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(p); return OK; }

3.文件LinkQueueUse.cpp 中包含检验LinkQueueAlgo.h 中关于链式队列基本操作的声明、测试数据和主函数。

#include \与实验一的意义相同*/

typedef int QElemType; /* 假设链式队列中的结点是一组整数*/ #include \

#include \void main()

编写主函数,验证上面的函数。 { }

运行结果:

请将运行结果 粘贴在此处

搜索更多关于: 实验二 栈和队列的操作与应用 的文档
实验二 栈和队列的操作与应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c737c32162k4ddq343gzy_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top