浙教版 (2019)选修1 数据与数据结构3.3 栈优质导学案
展开课程基本信息
学科
信息技术
年级
高二
学期
春季
课题
栈
学习目标
1. 能够根据解决问题的需要,从问题中提炼出栈结构。
2. 能够总结出栈的特性,领会栈的相关操作。
3. 通过具体任务的实践活动,体验用栈解决问题的基本流程,逐步形成运用栈结构解决问题
的思维方式和学科方法。
课前学习任务
1.列举生活中体现栈结构的实例。
2.对比队列结构的特性,说一说栈结构的特性。
3.回顾第一章项目挑战“用户角色特征值 ”,阅读并理解十进制转二进制的 pythn 程序。
n = int(input("请输入十进制整数:"))
ans=""
while n > 0:
r = n % 2
ans = str(r) + ans
n = n // 2
print("该十进制数转换成二进制为:" + ans)
课上学习任务
【学习任务一】
将元素“A ”、“B ”、“C ”、“D ”依次入栈、出栈过程,用 pythn 编程来实现(要求用循环结构)。
while ① :
【学习任务二】
字母 ABC 按顺序入栈,可能的出栈顺序有哪些?
【学习任务三】
用户角色特征值(十进制)转二进制的过程,从计算过程抽象出栈的结构,并用 pythn 编程 来实现。将加框处缺失的代码补充完整。
#栈的应用:进制转换
stack = [- 1]* 100
tp = - 1
n = int(input("请输入十进制整数:"))
x=n % 2
#入栈
②
n=n // 2
while tp>=0:
print(stack[tp],end="")
#出栈
③③
【学习任务四】
判断一个数学计算式中的括号(只有小括号)是否匹配。
第一步:抽象与建模
1.计算式中只关注括号,忽略其他字符。
2.判断左右括号的数量与位置时,采用栈结构来设计。从左往右遍历,遇到左括号,入栈, 遇到右括号,出栈。有三种情况:
1 栈空,出现右括号,不匹配
2 遍历结束,栈中还有左括号(栈不空),不匹配
3 遍历结束,栈空,匹配
第二步:设计算法
第三步:编写程序。根据代码注释,将加框处缺失的代码补充完整。
st = [""]* 100; tp = - 1 #建栈
flag= True #标记是否有不匹配的情况
s = input("输入计算式:")
fr i in range(len(s)):
#如果遇到左括号
#入栈
#如果遇到右括号
#如果栈空,不匹配
#设置 flag 变量为 False ,跳出循环 #如果栈不空
#出栈
if tp >= 0: #栈中还有左括号
flag = False
if flag:
print("括号匹配")
else:
print("括号不匹配")
【拓展任务】
修改括号匹配程序,尝试用列表自带函数和方法实现栈的操作。
知识链接:用列表自带函数和方法实现栈
stacklist[]
stacklist.append("A") stacklist.append("B")
print(stacklist[1]) print(len(stacklist)) stacklist.pp()
print(len(stacklist))
#建立一个空栈
#字母 A 入栈
#字母 B 入栈
#输出栈顶元素,为字母 B
#输出栈中元素个数,为 2
#弹出栈顶元素
#输出栈中元素个数,为 1 ,是字母 A
信息技术浙教版 (2019)5.2 迭代与递归优质学案: 这是一份信息技术浙教版 (2019)<a href="/xx/tb_c4005695_t4/?tag_id=42" target="_blank">5.2 迭代与递归优质学案</a>,共3页。
信息技术选修1 数据与数据结构第三章 字符串、队列和栈3.3 栈优质学案: 这是一份信息技术选修1 数据与数据结构<a href="/xx/tb_c4005686_t4/?tag_id=42" target="_blank">第三章 字符串、队列和栈3.3 栈优质学案</a>,共2页。学案主要包含了学习任务一,学习任务二,学习任务三,学习任务四等内容,欢迎下载使用。
高中信息技术浙教版 (2019)选修1 数据与数据结构3.3 栈优质学案: 这是一份高中信息技术浙教版 (2019)选修1 数据与数据结构<a href="/xx/tb_c4005686_t4/?tag_id=42" target="_blank">3.3 栈优质学案</a>,共4页。学案主要包含了学习任务一,学习任务二,学习任务三,学习任务四,拓展任务等内容,欢迎下载使用。