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

哈尔滨自助板建站我有一个域名怎么做网站

哈尔滨自助板建站,我有一个域名怎么做网站,做旅游宣传网站的流程图,备案网站建设书目录 前言 Everyday English 栈(Stack) 图文解释 实现添加删除元素 实现查看清空栈 完整代码 运行示例 栈的选择题 队列(Queue) 图文解释 队列的基本用法 完整代码 运行结果 队列的好处 结尾 前言 今天我们将…

目录

前言

Everyday English

栈(Stack)

图文解释

实现添加删除元素

实现查看清空栈

完整代码

运行示例

栈的选择题

队列(Queue)

图文解释

队列的基本用法

完整代码 

运行结果 

队列的好处 

结尾 


前言

今天我们将学习两个新的数据结构——栈和队列。

Everyday English

A friend in need is a friend indeed.
患难见真情。

栈(Stack)

图文解释

栈最直白的想象就是羽毛球筒了(假设从一个口取)。

比如说我想按照--的顺序放进去,并取出色羽毛去,得进行以下操作:

1.放入红-橙-黄色羽毛球。

2.取出顶部的黄色羽毛球。

3.取出顶部的橙色羽毛球。

下面请欣赏我的纯手绘图片:

现在请你把注意力放在黄色羽毛球上,它在放进筒时是最后一个放进去的,而被取出来时是第一个被取出来的;而红色羽毛球却是最后一个被取出来的。所以栈有一个很重要的性质:

先进后出,后进先出(LIFO:Last in first out)

实现添加删除元素

添加:将元素入栈并使指针右移一位。

void add(int n)//添加元素至栈顶
{tmp++;a[tmp]=n;
}

 删除:将元素出栈并使指针左移一位。

void pop()//删除栈顶元素
{a[tmp]=0;//这一步可要可不要tmp--;
}

实现查看清空栈

查看:把数组从1-tmp输出一下即可。

void look(int n[])
{for(int i=1;i<=tmp;i++){cout<<n[i]<<" ";}
}

清空:把数组归零,并把指针赋值为1。 

void empty(int n[])
{for(int i=1;i<=tmp;i++){n[i]=0;}tmp=0;
}

完整代码

#include<bits/stdc++.h>
using namespace std;
string op="";
int a[1005],tmp=0,n;
char b[1005],m;
void add(int n)//添加元素至栈顶
{tmp++;a[tmp]=n;
}
void pop()//删除栈顶元素
{a[tmp]=0;//这一步可要可不要tmp--;
}
void look(int n[])
{cout<<"The stack is:"; for(int i=1;i<=tmp;i++){cout<<n[i]<<" ";}
}
void empty(int n[])
{for(int i=1;i<=tmp;i++){n[i]=0;}tmp=0;cout<<"The stack is empty now."<<endl;
}
int main()
{memset(a,0,sizeof(a));while(1){cin>>op;if(op[0]=='s') return 0;else {if(op[0]=='a') cin>>n,add(n);if(op[0]=='p') pop();if(op[0]=='l') look(a);if(op[0]=='e') empty(a);}}
} 

运行示例

add 1
add 2
add 3
add 4
pop
pop
look
The stack is:1 2
add 5
empty
The stack is empty now.
add 6
look
The stack is:6

栈的选择题

栈虽然编程中用的不是特别多,但是在CSP的第一轮考试中经常出现,我们来看一看。 

1.有6个元素,按照6、5、4、3、2、1的顺序入栈S,请问下列哪个出栈顺序是非法的?

A.5  4  3  6  1  2

B.4  5  3  1  2  6

C.3  4  6  5  2  1

D.2  3  4  1  5  6

题目来源:2022 CSP-J 选择第二题

解析:因为6比5先入栈,所以出栈时6应该在5后面,故选C。当然你也可以模拟一下。

2.对于入栈顺序为a,b,c,d,e的序列,下列( )不是合法的出栈序列。

A.a,b,c,d,e

B.e,d,c,b,a

C.b,a,c,d,e

D.c,d,a,e,b

题目来源:2021 CSP-J 选择题第五题

解析:因为a比b先入栈,所以出栈时a应该在b后面,故选D。当然你也可以模拟一下。

A.进栈一个,出栈一个

B.全部进栈,全部出栈

C.a进栈,b进栈,b出栈,a出栈,剩下的进栈一个,出栈一个。

D.无法完成

3.下图中所使用的数据结构是?

A、栈

B、队列

C、二叉树

D、哈希表

栈的性质是:后进先出,故选A。

队列(Queue)

图文解释

队列顾名思义就是排队买票,先买票的人总是先出来,最后买票的人最后出来。

如上图,1号游客最先排队,所以他第一个买票也是第一个出来的,这就是队列的重要性质:

先进先出,后进后出(FIFO:First in first out)

队列的基本用法

在C++中,已经有为我们写好的队列了,我们只需直接使用即可。

首先需要定义一个队列:

queue<变量类型> q; 

这个变量类型可以是int,double,long long,struct...... 

下面是队列的几个基本用法:

q.pop() //弹出队首元素
q.push(item) //把元素item插入到队尾
q.empty() //如果队列为空返回True,否则返回False
q.full() //如果队列已满返回True,否则返回False
q.front() //调用队首元素
q.size() //返回队列中元素的数量

完整代码 

#include<bits/stdc++.h>
using namespace std;
int main()
{queue<int> q;q.push(1);q.push(2);q.push(3);q.pop();cout<<q.front()<<endl;q.pop();cout<<q.size()<<endl;q.pop();if(q.empty()) cout<<"The queue is empty."<<endl;return 0;
}

运行结果 

2
1
The queue is empty.

队列的好处 

等我们后面学到BFS时,会用到很多有关于队列的知识。

结尾 

本篇文章我们学习了栈和队列,图片为纯手绘无参考,制作不易,还请各位大佬三连支持一下

http://www.yayakq.cn/news/444488/

相关文章:

  • 保山做网站怎么建立企业网站
  • 商城网站的建设费用建设商城网站公司吗
  • php网站开发工资多少钱做一个wordpress模板
  • 中国制造网国际站官网网站建设关健词优化网络公司怎么样
  • 网站界面排版好看如何提高网站访问量
  • 泉州网站建设推广手工大全
  • 音乐网站开发环境描述网站建设做得好
  • 标准营销型网站定做价格好用的小程序推荐
  • 怎么建立自己的公司网站wordpress中文字体库
  • 网站建设 学生作业快递公司网页模板
  • 南京网站建设希丁哥皖icp合肥网站建设
  • 网站域名更换一键logo设计生成器
  • 东莞市外贸网站建设公司百度怎么建网站
  • 淘宝店招免费做的网站有网络设计是本科
  • 建设一个网站可以采用那几方案网站建立风格
  • 网站上添加图片的原则无线路由器做中继手机能连接但无法访问网站
  • 什么是网站接入商做p2p投资理财的网站
  • 网站开发插件宁波的网络营销服务公司
  • 建设报名系统网站wordpress获取所有标签页
  • 网站制作要学多久网站维护发展
  • 网站排名高权重低9377传奇全部游戏
  • 科迪兔网站建设电商进货渠道
  • 金融外贸是做什么的镇江网站优化哪家好
  • 惠州网站建设开发团队网站建设优化服务资讯
  • 哈尔滨建站公司模板那些网站做调查能赚钱
  • 用dedecms做的网站是模板网站么网站 关键词库
  • 服装手机商城网站建设wordpress标签tag文章
  • 网站建设心得体会总结吉林省建设信息网电话
  • 长沙鞋网站建设如何建个使用自己帐户的网站
  • 主题资源网站建设反思学计算机需要什么基础