当前位置: 高中信息技术 / 综合题
  • 1. (2023高三上·浙江月考) 小王在某政府接待窗口工作,该单位的共有ABCDEF六个窗口,民众在具体窗口办事,都会取到一个编号如 A001(窗口编号+三位数字)。当民众完成一个办事后,都会按“确认”键报送给小王。小王的工作是每间隔30分钟,公布一次各窗口累计处理事务单,统计结果按 照 窗 口 序 号 及 编号升 序 输出。如:某30分钟内,小王接收到一批数据:"A001","A002","B001","B002","D001","C003","C002"。现小王采用链表方式将这批数据插入。程序结果运行如下:

    具体 Python 程序代码如下,请在划线处填入合适的代码。

    1. (1) 实现对链表a按序输出功能:

      def output(h,a):

         

          while p!=-1:

              print(a[p][0],end=" ")

              p=a[p][1]

    2. (2) 实现对列表b进行排序整理

      def sort_lst(b):

          for i in range(len(b)-1):

              for j in range(1,len(b)-i):

                  if :

                  b[j],b[j-1]=b[j-1],b[j]

          return b

    3. (3) 实现将列表b中的数据有序插入到a链表中,并保持有序性

      def insert_lst(a,head,b):

          p=-1 ; q=head

          for i in b:

              a.append([i,-1]) ; n=len(a)-1

              if a[head][0]>i:

                  a[n][1]=head ; head=n

                 

              else:

                  p=q ; q=a[p][1]

                  while :

                      p=q ; q=a[p][1]

                 

                  a[p][1]=n ; q=n

          return head

      lst1=[["F001",-1],["B003",3],["E001",0],["C001",2]]              #已有数据

      lst2=["A001","A002","B001","B002","D001","C003","C002"]          #新接收数据

      lst2=sort_lst(lst2)

      head=1

      head=insert_lst(lst1,head,lst2)

      print("各窗口累计处理事务单:")

      output(head,lst1)                   #输出整理后的有序的链表

微信扫码预览、分享更方便