栈的定义,基本操作,引入训练题,算法设计,图解,代码实现_栈的定义和特点

2023-04-01 05:30:57

 

1.栈的定义及算法实现

定义栈(stack)只允许在栈顶操作,不允许在中间位置进行插入和删除操作,不支持数组表示法和随机访问使用栈时需要引入头文件#include栈的基本操作很简单,包括入栈、出栈、取栈顶、判断栈空、求栈大小。

2.栈的定义和基本操作

stacks:创建一个空栈s,数据类型为intpush(x):x入栈pop():出栈top():取栈顶(未出栈)empty():判断栈是否为空,若为空则返回truesize():求栈大小,返回栈中的元素个数。

3.栈的定义?栈的操作原则?

Web导航题目描述(POJ1028):标准的Web浏览器包含在最近访问过的页面中向后和向前移动的功能实现这些特性的一种方法是使用两个栈来跟踪前后移动可以到达的页面支持以下命令BACK:将当前页面推到前向栈的顶部。

4.栈的定义和实现

从后向栈的顶部弹出页面,使其成为新的当前页面如果后向栈为空,则忽略该命令FORWARD:将当前页面推到后向栈的顶部从前向栈顶部弹出页面,使其成为新的当前页面如果前向栈为空,则忽略该命令VISIT:将当前页面推到后向栈的顶部,使URL成为新的当前页面。

5.栈的基本概念

前向栈清空QUIT:退出浏览器假设浏览器的最初页面为URL ***###.acm.org/(对“http://”用“***”代替,对“www”用“###”代替)输入:输入是一系列BACK、FORWARD、VISIT、QUIT命令。

6.栈的基本知识

URL没有空白,最多有70个字符任何时候,在每个栈中都不会超过100个元素QUIT命令表示输入结束输出:对于除QUIT外的每个命令,如果不忽略该命令,则在执行该命令后单行输出当前页的URL,否则输出“Ignored”。

7.栈的概念和性质

QUIT命令没有输出

8.栈的定义和存储表示方法

1.算法设计本题模拟Web浏览器中的前进和后退两个操作,可以使用两个stack解决backward表示后向栈;forward表示前向栈(1)初始时,当前页面cur为“***###.acm.org/”(2)BACK:如果后向栈为空,则忽略该命令;否则将当前页面放入前向栈,从后向栈的顶部弹出页面,使其成为新的当前页面。

9.栈的基本运算详解

输出当前页面(3)FORWARD:如果前向栈为空,则忽略该命令;否则将当前页面放入后向栈,从前向栈的顶部弹出页面,使其成为新的当前页面输出当前页面(4)VISIT:将当前页面放入后向栈的顶部,并使URL成为新的当前页面。

10.栈的定义和特点

前向栈清空输出当前页面(5)QUIT:退出浏览器2.完美图解(1)初始时,cur为“***###.acm.org/”(2)VISIT ***acm.ashland.edu/,将当前页面放入后向栈的顶部,并使URL成为新的当前页面。

前向栈清空

输出cur:***acm.ashland.edu/。(3)VISIT ***acm.baylor.edu/acmicpc/,将当前页面放入后向栈的顶部,并使URL成为新的当前页面。前向栈清空。

输出cur:***acm.baylor.edu/acmicpc/。(4)BACK:如果后向栈为空,则忽略该命令;否则将当前页面放入前向栈,从后向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***acm.ashland.edu/。(5)BACK:如果后向栈为空,则忽略该命令;否则将当前页面放入前向栈,从后向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***###.acm.org/。(6)BACK:后向栈为空,输出忽略命令。

输出:Ignored。(7)FORWARD:如果前向栈为空,则忽略该命令;否则将当前页面放入后向栈,从前向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***acm.ashland.edu/。(8)VISIT ***###.ibm.com/,将当前页面放入后向栈的顶部,并使URL成为新的当前页面。前向栈清空。

输出cur:***###.ibm.com/。(9)BACK:如果后向栈为空,则忽略该命令;否则将当前页面放入前向栈,从后向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***acm.ashland.edu/。(10)BACK:如果后向栈为空,则忽略该命令;否则将当前页面放入前向栈,从后向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***###.acm.org/。(11)FORWARD:如果前向堆为空,则忽略该命令;否则将当前页面放入后向栈,从前向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***acm.ashland.edu/。(12)FORWARD:如果前向栈为空,则忽略该命令;否则将当前页面放入后向栈,从前向栈的顶部弹出页面,使其成为新的当前页面。输出当前页面。

输出cur:***###.ibm.com/。(13)FORWARD:前向栈为空,忽略该命令。

输出:Ignored(14)QUIT:结束3.算法实现int main(){ stackbackward;//后向栈 stackforward;//前向栈 string c; string cur="http://www.acm.org/"; while(cin>>c&&c!="QUIT"){ if(c=="VISIT"){ backward.push(cur); cin>>cur; cout<

TO BE CONTINUTED喜欢的还请点赞 收藏呀~


以上就是关于《栈的定义,基本操作,引入训练题,算法设计,图解,代码实现_栈的定义和特点》的全部内容,本文网址:https://www.7ca.cn/baike/10722.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜