3.3.1 栈的概念、特性与基本操作-学习任务单(1)

资源下载
  1. 二一教育资源

3.3.1 栈的概念、特性与基本操作-学习任务单(1)

资源简介

学习任务单
课程基本信息
学科 信息技术 年级 高二 学期 春季
课题 栈
学习目标
1. 能够根据解决问题的需要,从问题中提炼出栈结构。 2. 能够总结出栈的特性,领会栈的相关操作。 3. 通过具体任务的实践活动,体验用栈解决问题的基本流程,逐步形成运用栈结构解决问题 的思维方式和学科方法。
课前学习任务
1.列举生活中体现栈结构的实例。 2.对比队列结构的特性,说一说栈结构的特性。 3.回顾第一章项目挑战“用户角色特征值 ”,阅读并理解十进制转二进制的 python 程序。 n = int(input("请输入十进制整数:")) ans="" while n > 0: r = n % 2 ans = str(r) + ans n = n // 2 print("该十进制数转换成二进制为:" + ans)
课上学习任务
【学习任务一】 将元素“A ”、“B ”、“C ”、“D ”依次入栈、出栈过程,用 python 编程来实现(要求用循环结构)。
(
while

:
) 【学习任务二】 字母 ABC 按顺序入栈,可能的出栈顺序有哪些? 【学习任务三】 用户角色特征值(十进制)转二进制的过程,从计算过程抽象出栈的结构,并用 python 编程 来实现。将加框处缺失的代码补充完整。 #栈的应用:进制转换 stack = [- 1]* 100 top = - 1 n = int(input("请输入十进制整数:")) x=n % 2 #入栈 ②
n=n // 2 while top>=0: print(stack[top],end="") #出栈 ③③
【学习任务四】 判断一个数学计算式中的括号(只有小括号)是否匹配。 第一步:抽象与建模 1.计算式中只关注括号,忽略其他字符。 2.判断左右括号的数量与位置时,采用栈结构来设计。从左往右遍历,遇到左括号,入栈, 遇到右括号,出栈。有三种情况: 1 栈空,出现右括号,不匹配 2 遍历结束,栈中还有左括号(栈不空),不匹配 3 遍历结束,栈空,匹配 第二步:设计算法
第三步:编写程序。根据代码注释,将加框处缺失的代码补充完整。 st = [""]* 100; top = - 1 #建栈 flag= True #标记是否有不匹配的情况 s = input("输入计算式:") for i in range(len(s)): #如果遇到左括号 #入栈 #如果遇到右括号 #如果栈空,不匹配 #设置 flag 变量为 False ,跳出循环 #如果栈不空 #出栈
if top >= 0: #栈中还有左括号 flag = False if flag: print("括号匹配") else: print("括号不匹配") 【拓展任务】 修改括号匹配程序,尝试用列表自带函数和方法实现栈的操作。 知识链接:用列表自带函数和方法实现栈 (
stacklist
[]
stacklist
.
append
("A")
stacklist
.
append
("B")
print
(
stacklist
[1])
print
(
len
(
stacklist
))
stacklist.pop()
print
(
len
(
stacklist
))
)#建立一个空栈 #字母 A 入栈 #字母 B 入栈 #输出栈顶元素,为字母 B #输出栈中元素个数,为 2 #弹出栈顶元素 #输出栈中元素个数,为 1 ,是字母 A

展开更多......

收起↑

资源预览