高中信息技术 / 浙教版(2019) / 选修1 数据与数据结构 / 第三章 字符串、队列和栈 / 3.3 栈 / 编号:20086571

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

日期:2024-05-15 科目:高中信息技术 类型:学案 来源:二一教育课件站
关键词:括号,任务,结构,学习,入栈,出栈
预览图 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

~~ 已预览到文档结尾了 ~~