范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

数据结构与算法(五)符号表

  符号表定义
  符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值。
  符号表中,键具有唯一性。 符号表在实际生活中的使用场景是非常广泛的,见下表:
  应用
  查找目的
  键
  值
  字典
  找出单词的释义
  单词
  释义
  图书索引
  找出某个术语相关的页码
  术语
  一串页码
  网络搜索
  找出某个关键字对应的网页
  关键字
  网页名称 符号表实现结点类设计
  类名
  Node
  构造方法
  Node(K key, V value, Node next)  :创建Node对象
  成员变量  private K key  :存储键
  private V value :存储值
  private Node next :存储下一个结点结点类代码实现@AllArgsConstructor @NoArgsConstructor private static class Node {     //键     public K key;     //值     public V value;     //下一个结点     public Node next; }符号表设计
  类名
  SymbolTable
  成员方法 public V get(K key)  :根据键key,找对应的值
  public void put(K key, V value) :向符号表中插入一个键值对
  public void delete(K key) :删除键为key的键值对
  public int size() :获取符号表的大小
  成员变量  private Node head  :记录首结点
  private int n :记录符号表中键值对的个数符号表代码实现public class SymbolTable {     private final Node head;     private int n;      public SymbolTable() {         this.head = new Node<>();         this.n = 0;     }      /**      * 根据键key,找对应的值      */     public V get(K key) {         // 符号表中存在key,找到key         var node = head;         while (node.next != null) {             node = node.next;             if (Objects.equals(key, node.key)) {                 return node.value;             }         }         return null;     }      public void put(K key, V value) {         // 符号表中存在key,找到key替换值         var node = head;         while (node.next != null) {             node = node.next;             if (Objects.equals(key, node.key)) {                 node.value = value;                 return;             }         }         // 不存在,新建结点         var oldFirst = head.next;         head.next = new Node<>(key, value, oldFirst);         n++;     }      public void delete(K key) {         // 符号表中存在key,找到key删除之         var node = head;         while (node.next != null) {             if (Objects.equals(key, node.next.key)) {                 node.next = node.next.next;                 n--;                 return;             }             node = node.next;         }     }      public int size() {         return n;     }      @AllArgsConstructor     @NoArgsConstructor     private static class Node {         //键         public K key;         //值         public V value;         //下一个结点         public Node next;     } }有序符号表实现
  刚才实现的符号表,我们可以称之为无序符号表,因为在插入的时候,并没有考虑键值对的顺序,而在实际生活中,有时候我们需要根据键的大小进行排序,插入数据时要考虑顺序,那么接下来我们就实现一下有序符号表。 泛型K实现Comparable接口public class OrderedSymbolTable, V> {     // ... }修改put方法,使插入的元素K有序public void put(K key, V value) {     var current = head.next; // 记录当前结点     var pre = head; // 记录上一个结点     while (current != null && key.compareTo(current.key) > 0) {         pre = current;         current = current.next;     }     // 如果key和当前节点一致,修改     if (current != null && key.compareTo(current.key) == 0) {         current.value = value;         return;     }     // 没有找到相同的key,把新结点插入到curr之前     pre.next = new Node<>(key, value, current);     n++; }
  测试结果正确

SQL科普1章4讲打好基础库表行列键等概念一前言大家好,上节课我们对SQL语言有了一个简要的了解。那么从这一讲开始我们就进入了本门课程的正式学习内容。我们会想,既然我们的工作中需要数据库,那么我们该怎样去学呢?学习数据库又恭喜你,看到今年年底最靠谱苹果13香的测评iPhone13是去年9月发布的一款5G智能手机,今年6月我就买了一款256GB的,那就来说一说苹果13香的优缺点。手机屏幕与处理器iPhone13屏幕是6。1英寸OLED屏,它的苹果八年都没解决AppleWatch一天一充,国产厂商如何另寻蹊跷?说到AppleWatch,相信不少人的印象都是体验无短板,续航是硬伤。消费者这么说也无可厚非,毕竟从初代AppleWatch开始,到现在的AppleWatchS8,它都保持着一天一京东推出品质联盟确保安心购物,安克小米成首批认证品牌户外电源是新一代绿色环保移动储能设备,它具备安静清洁易用等优势,在欧美地区已成为大部分家庭的标准配置,户外电源除了适配户外运动的场景外,更是应对气候灾变与能源紧缺的紧急物资储备。近从苹果到小米,手机售后服务不断优化,人民网点名表扬国产品牌当我们购买一款手机时,所支付的费用并不是只用来购买硬件,其中还有一部分是提前交的售后服务费用,所以厂商才会给用户提供一年的保修服务。但面对真正出现问题的用户,不同厂商也会给出不同的别问14亿人为什么找不到23个踢球的,这篇文章逐一告诉你真相题记每逢世界杯年,总会有人提出这样一个问题中国有14亿人口,怎么就找不出11个人去参加世界杯。对此,我无言以对。这也促使我下决定写一篇文章,专门剖析其中究竟,如有言辞不当之处,恭请午睡时长很重要,与你的健康息息相关!您知道自己应该睡多久吗?俗话说春困秋乏夏打盹睡不醒的冬三月,天气一冷,不少人就愿意睡个午觉。但午觉睡多久,是有讲究的!睡午觉,人的本能需求早在1986年,有项关于人类睡眠与觉醒的节律实验中就证实了,人完全小心!大腿出现这种疼痛,预示膝盖磨损!快学会这几点,医生都在用天气转寒,不少人的腿脚又不利落了,关节酸胀晨僵上下楼梯困难等症状准时找上了门。虽然说寒冷受寒和骨关节炎的发病并没有直接关系。但是,寒冷却是检验关节健康程度的照妖镜!5点说膝盖受损俗多地优化核酸检测要求,广州放松网课学生和长期居家老人广州多个区发布通知长期居家老人每日网课学生居家办公者等无社会面活动的人员,如果没有外出需求,可以不参加11月28日的全员核酸筛查,减少人群聚集感染风险文财经记者周缦卿金贻龙姚佳莹编怎么改变亚健康状态?什么是亚健康?亚健康是指人体处于疾病和健康之间的一种状态。亚健康的人群是主观感觉容易疲劳失眠健忘等。目前中国亚健康人群比例达70以上。我就是亚健康人群之一,在身体方面,我时常感觉体使用Prometheus监控Kafka,我们该关注哪些指标Kafka作为当前广泛使用的中间件产品,承担了重要核心业务数据流转,其稳定运行关乎整个业务系统可用性。本文旨在分享阿里云Prometheus在阿里云Kafka和自建Kafka的监控
财险江湖走马换将!开年仅10天5家险企现高层变动太保融通浙商迎来新任总经理,曾义任职资格获批5家财险公司迎来重大人事变动。岁末年初,保险行业人事江湖变动频繁。自开年以来,5家财险公司迎来重大人事变动。具体来看,太保产险融通财险浙商财险三家正式迎来总经理,任职资格均获银保监栗文忠房地产迎来最好政策环境,房企要主动破局2023年国内外所面临形势依然严峻,但确定的是,中国房地产行业发展有了政策的确定性,房地产业再次迎来了历史上最好的政策环境。1月11日,一场以相信的力量进化及重构为主题的2023中石家庄最新规划!涉及多家医院近日,石家庄市人民政府网站公布石家庄市十四五国民健康规划。规划期为2021一2025年。规划分为15个部分。其中,发展目标中提到,到2025年,初步建立人民健康优先发展的制度体系,宝马在华销量超79万纯电车暴涨91未来持续布局电动化随着2023年的到来,各大汽车厂商纷纷公布了2022年以及12月份的销量情况。其中,在国内豪华品牌市场中,根据宝马集团公布的最新销售数据显示,2022年宝马集团在国内市场共计交付B聚焦央企加速专业化整合国企办医疗机构深化改革完成99。610日,中国电建集团与通用技术集团医疗资源专业化整合正式签约。这也是国资委大力推动国有企业办医疗机构深化改革,优化医疗资源配置的又一重要成果。中国电建医疗机构改革是中央企业专业化整苹果不会自己制造屏幕,而是要提高对iPhone屏幕供应的掌控力IT之家1月12日消息,彭博社日前发布重磅新闻,称苹果正在自研适用于iPhone和AppleWatch的屏幕,并引发了科技媒体的广泛讨论。但国外科技媒体9to5Mac给出了更加客观笑到喷饭的穿帮镜头,关晓彤忍了,看了刘亦菲太心疼,导演你来!搞笑一刻现在的电视剧出片率很高,从剧本表演到后期制作都非常用心,但总还是会有一些漏网之鱼,成就了一些经典的穿帮镜头。下面就让我们一起去回顾一下电视剧中的穿帮镜头,乐呵一下吧。穿帮镜苹果自研屏幕,零部件全面自给自足1月11日消息据彭博社报道,从2024年开始,苹果公司计划为iPhone和AppleWatch等移动设备更换自研的屏幕。屏幕由苹果公司设计,但生产将仍由供应商进行。这次转变将从Ap韩媒称台积电3nm良率仅有50,三星3nm良率已达完美水准三星目前已经大幅提高了其最尖端的3nm制程的良率与产量,用以相抗衡也已正式大规模量产3nm制程的晶圆代工龙头台积电。南韩三星在2022年6月底正式宣布量产采用GAA技术的3nm制程拍戏为啥只拍上半身?当镜头下移后,原谅我不厚道的笑了射雕英雄传大家都看过吧,相信看过的朋友都曾羡慕过裘千仞的绝招。他之所以叫铁掌水上漂,是因为他能空手捏碎砖头,手掌如钢铁一般坚硬有力。而水上漂,顾名思义就是能在水上漂起来。第一次在归游戏产业2022电子产品是标配,名牌包金条作大奖,从游戏公司年会展望2023行业趋势21世纪经济报道记者蔡姝越上海报道时间来到2023年的第一个工作周,对许多游戏公司的员工而言,最近多了一个盼头,那便是即将召开的公司年会。无论在过去一年中,作为一颗螺丝钉干出了怎样