充值活动已开启,快来参与吧 关闭充值活动
当前位置: 高中信息技术 /
  • 1. 张三是一名计算机专业的大学生,为了帮助同学们学习专业相关的英语词汇,编写一个简易字典程序。该程序中存放词汇数据库,在学习中输入英文单词,可以获得中文翻译结果。程序中的词汇数据库采用链表方式存储,首字母相同时按升序排序。查找单词时,首先根据首字母找到同首字母最小单词所在链表,再按照链表顺序查找该单词。

    1. (1) 根据题意 ,部分的单词库数据逻辑结构如图所示 ,查找单词“byte” 的过程是 “binary ”→ “bit ”→“byte”,补充图中空白单元格的值为

    2. (2) wordlist(data,info)函数实现将词汇数据库 data 以链表的方式按字母序升序排列。info 表示词汇数据库中各字母开头的最小单词位置,如 info[0]表示字母 a 开头的最小单词在 词汇数据库 data 中的位置。实现该功能的程序如下,请在划线处填入合适的代码。

      def wordlist(data,info) :

          n = len (data)

          for i in range(n):

              data[i].append(-1)    #data[i]追加一个元素-1

          for i in range(n):

              d = data[i][0]

             

              if info[k] == -1:

                  info[k] = i

              else:

                  head = info[k]

                  q = head

                  while  :

                      p = q

                      q = data[q][2]

                  if q != head:

                      data[p][2] = i

                      data[i][2] = q

                  else:

                      data[i][2] = head

                     

      return data,info

    3. (3) searchword(data,info,key)函数实现单词的查找。程序如下,请在划线处填入合适的代码。

      def searchword(data,info,key) :

          k = ord(key [0]) - ord("a")

          head = info[k]

          p = head

          while p != -1:

              if data[p][0] == key:

                  return

                  p = data[p][2]

      return "没有找到该单词"

      读取词汇数据库,存入列表 data 中,列表的每个元素包含 2 个数据项,分别为英文单词和中 文翻译,如 data = [[‘audio ’,‘音频 ’], [‘binary ’,‘二进制数 ’] …], 数据读取 存入的代码略。

      '''

      info = [-1] * 26

      data,info = wordlist(data,info)

      key = input("请输入查找单词:").lower ()    #转化为小写字母

      res = searchword(data,info,key)

      print(key, "查找结果是:", res)