沪教版(2019)信息技术选修1《第三单元特殊的线性表》练习及参考答案

沪教版(2019)信息技术选修1《第三单元特殊的线性表》练习及参考答案,以下展示关于沪教版(2019)信息技术选修1《第三单元特殊的线性表》练习及参考答案的相关内容节选,更多内容请多关注我们网站

1、第三单元练习及参考答案1.假设有如下功能的演唱会门票预订系统:按先到者先订的规则进行预订当门票都预订完后,允许在队伍中等待退票请画出算法流程图并编程实现排队预订及等候退票功能。参考答案流程图如下所示; 参考代码如下所示:#!/usr/bin/python#-*-coding:utf-8-*-total_tickets=3 #假设总票数为3user_in_the_queue= #定义排队队列,用列表模拟def get_ticket(user_name,amount):#如果还有票,返回购票数#否则继续排队 global total_ tickets global user_in_the_queu

2、e left=total_tickets-amount if left-1: print( user_name, get,amount, tickets successfully”) total_tickets=total_tickets -amount returnelse:print( user_name, can not get,amount, tickets, wait in the queue)user_in_the_queue.append(user_name)def get_return_ticket( user_name, amount): global user_in_the

3、_queue first_user_in_the_queue=user_in_the_queuelen(user_in_the_queue)-1 if first_user_in_the_queue =user_name: get_ticket( user_name, amount)else:print( user_name, can not get ticket first, user in the queue now”) user_in_the_queue.append( user_name) def main():user_name_a =BoyA”user_name_b =BoyB”u

4、ser_name_c =BoyC”get_ticket(user_name_a, 3)get_ticket(user_name_b, 3) return_ticket(3) get_return_ticket(user_name_c, 1) get_return_ticket(user_name_b, 3) def return_ticket(amount): global total_tickets total_tickets=total_tickets+amountif _name_=_main_:main()2.四方向迷官问题求解:假设有8X8的迷官如下所示(迷官用二维数组存放,可查阅资

5、料了解二维数组),1表示障碍不能通行,0表示通道可以通行。求解方法为:从人口开始出发沿着某一个方向向前试探,若能够通行,则继续试探前行:如果遇到障碍,马上原路返回,并在该路口做上记号,换另一个方向继续试探前行;重复上述步骤直到到达迷官的出口后结束。由于迷官错综复杂,靠人力来搜索迷官的所有通路是很费时、费力的一件事,因此可以借助计算机编程来完成。入口0010001000100010000011000111000000010000010001000111011000001000出口画出求解迷官问题中,栈的变化过程。设计解四方向迷宫问题的算法并编程实现。提示:在编程时,为避免考虑第一行不能朝上走、第一列不能朝左走,最后一列不能朝右走,最下一行不能朝下走,可以在迷官外围设置一圈“围墙”,这样所有的位置都可考虑四个方向,围墙等同于障碍(用1表示),如下所示。1111111111100100010110010001011000011001101110000110001000011010001001101110110110000100011111111111参考答案:栈dx存放路径点的x坐标;栈dy存放路径点的y坐标。状态(1)为初始状态,dx,dy都是空栈。 状态(2)为从入口进入,入口的x坐标1和y坐标1分别进栈。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。