当前位置: 首页 > news >正文

传奇网站发布网徐州seo顾问

传奇网站发布网,徐州seo顾问,c 视频网站开发,香港大带宽服务器一、实验目的 1.掌握队列的顺序存储结构 2.掌握队列先进先出运算原则在解决实际问题中的应用 二、实验内容 仿照教材顺序循环队列的例子,设计一个只使用队头指针和计数器的顺序循环队列抽象数据类型。其中操作包括:初始化、入队…

一、实验目的

1.掌握队列的顺序存储结构
2.掌握队列先进先出运算原则在解决实际问题中的应用

二、实验内容

  1. 仿照教材顺序循环队列的例子,设计一个只使用队头指针和计数器的顺序循环队列抽象数据类型。其中操作包括:初始化、入队列、出队列、判断队列是否非空。编写主函数,验证所设计的顺序循环队列的正确性。

    以下是队列操作函数的定义:
    (1) QueueInitiate(Q) 初始化队列Q
    (2) QueueNotEmpty(Q) 队列Q非空否
    (3) QueueAppend(Q,x) 入队列,在队列Q的队尾插入数据元素x。
    (4) QueueDelete(Q,d) 出队列,把队列Q的队头元素删除并由参数d带回。

提示:队尾的位置可由队头指针与计数器进行求解,请思考它们之间的关系,同时还要考虑如何实现循环队列(可借助求模运算)。

  1. 利用以上队列函数,编写算法(用函数表示算法)计算杨辉三角,并打印对应的数值。

三、实验源代码

🧀 queue.h

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef struct queue
{int* s;int front;int cnt;
}Q;
int mx = 100;
void QueueInitiate(Q* q)
{q->s = (int*)calloc(0, sizeof(int)*mx);q->cnt = 0;q->front = 0;
}int QueueNotEmpty(Q* q)
{return q->cnt;
}void QueueAppend(Q* q,int c)
{int r = (q->front + q->cnt)%mx;//下标映射if (q->cnt==mx){cout << "队列已满,请稍后重试!" << endl;return;}q->s[r] = c;q->cnt++;
}void QueueDelete(Q* q,int* d)
{if(q->cnt <= 0){cout<< "队列为空!删除失败!"<<endl;return;}	*d = q->s[q->front];q->front = (q->front+1)%mx;q->cnt--;
}

🧀queue.cpp

#include "queue.h"
//队列实现杨辉三角
void testYangHui()
{cout<<"请输入杨辉三角的层数:";int n;cin >> n;Q* q = new Q;mx = 1000;QueueInitiate(q);
//	初始化QueueAppend(q, 1);int x = 0;for(int i = 1; i <= n;i++){int margin = 1;//表示两边的 1int cnt = i-1;//cnt表示当前行除最后一个元素外的元素个数QueueAppend(q,margin);//给下一行添加左边的1while(cnt--){			QueueDelete(q,&x);// x 表示当前队首元素cout << x << " ";QueueAppend(q,x+q->s[q->front]);}
//		处理最后一个元素(因为最后一个元素无后继元素和它相加构成下一行的元素)QueueDelete(q,&x);cout << x << " ";QueueAppend(q,margin);//给下一行添加右边的1cout << endl;}
}
void menu(){cout << "======= 选择你的操作 ========"<< endl;cout << "==== 1 x:入队一个元素x  ====" << endl;cout << "==== 2:出队队一个元素   ====" << endl;cout << "==== 3:输出队列所有元素 ====" << endl;cout << "==== 0:结束             ====" << endl;cout << "=============================" << endl;}
void print(Q* q)
{int cnt = q->cnt;if(cnt==0){cout << "队列为空" << endl;return;}	int front = q->front;while(cnt--){int x = q->s[front++];cout << x  << " ";front %= mx;}cout << endl;
}
//验证循环数组实现队列的正确性
void testTrue()
{int flag,x;Q* q = new Q;mx = 3;QueueInitiate(q);menu();while(true){cin >> flag;switch (flag) {case 1:{	cin >> x;QueueAppend(q,x);break;}case 2:{int flag = QueueDelete(q,&x);if(flag)cout <<"元素 "<<  x << " 出队"<< endl;break;}case 3:{	print(q);break;}case 0:return;default:cout << "非法输入" <<endl;}}
}int main(void)
{testTrue();
//	testYangHui();return 0;
}

四、实验结果(测试数据)

在这里插入图片描述

# 五、实验总结

http://www.15wanjia.com/news/51853.html

相关文章:

  • 网站推广公司招聘在线生成网页网站
  • 涪陵网站制作热门搜索
  • 企业建设网站的母的seo优化官网
  • 电脑手机自适应网站的建设美食软文300范例
  • 网站建设作用 名词解释seo综合优化公司
  • 网站开发环境是什么什么是市场营销
  • 网站的回到顶部怎么做重庆seo整站优化效果
  • 什么样的网站需要改版aso优化注意什么
  • 网站为什么要seo?站长工具seo综合查询怎么用
  • 邢台做网站公司西安百度seo
  • 京津冀协同发展交通一体化规划seo引擎优化平台培训
  • 哪个网站做美食自媒体更好seo优化操作
  • 长沙百度搜索网站排名关键词拓展工具有哪些
  • 灰色色调的网站中国十大搜索引擎排名最新
  • 广州专业网站建设性价比高seo是付费还是免费推广
  • 百度小程序可以根据网站的要求做seo站长工具
  • 找阿里巴巴购买做网站的软件广州王牌seo
  • 钟祥网站建设网页搜索快捷键
  • 北京网站建设公司哪家好商城网站建设
  • 上海网站建设最好的公司排名seo霸屏软件
  • 祁东网站开发怎么利用互联网推广
  • 网站反链接是什么意思seo主要做什么工作
  • 网站上职业学校排名 该怎么做长沙网络公司营销推广
  • 百万综合文字论文网址的内容济南seo外包公司
  • 网站建设对电子商务的意义火星培训机构收费明细
  • 手机app开发制作报价北京如何优化搜索引擎
  • 阿里巴巴网站怎么做全屏大图怎么建立网站快捷方式
  • 做网站需要注册什么类型的公司今天宣布疫情最新消息
  • wap网站开发视频教程网站搭建费用
  • 阿里云要求的网站建设方案网络服务合同