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

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

  符号表定义
  符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值。
  符号表中,键具有唯一性。 符号表在实际生活中的使用场景是非常广泛的,见下表:
  应用
  查找目的
  键
  值
  字典
  找出单词的释义
  单词
  释义
  图书索引
  找出某个术语相关的页码
  术语
  一串页码
  网络搜索
  找出某个关键字对应的网页
  关键字
  网页名称 符号表实现结点类设计
  类名
  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++; }
  测试结果正确

直击义乌快递黑科技每小时分拣8。5万件相当于近百人的工作量视频加载中10月31日晚8点,随着双11第一波售卖正式开启,义乌各大快递公司开始进入一年中最忙碌的时间。11月1日,记者来到义乌圆通快递位于Chinagoods共享云仓分拣中心,占iphone降价!14系列部分机型降价低至千元,网友表示这谁顶得住经中国经济周刊报道10月31日晚8点整双十一开启后,广大消费者开启剁手模式,部分热门数码产品出现卖断货的情况,晚上八点一过iPhoneAirpodsproiPadAir5等多款现货正邦科技,这个中国企业500强,曾经的养猪巨头怎么了?较长的有关正邦科技的文章2700字,阅读时长大概8分钟正邦科技最近被供应商申请破产重整,10月26日被法院受理破产重整,这些天全资子公司正邦养殖以上市公司大股东和一致行动人也被债权双十一值得买的千元鸿蒙手机,华为畅享50系列给你大惊喜时值双十一期间,选择一款综合性能出色的智能手机显然必不可少,而华为畅享50系列便是不错的选择,无论是华为畅享50还是华为畅享50Pro,都具备大电池大内存大屏幕的特点,并且配合Ha父亲周年祭日去年,农历十月十五日凌晨五点十九分,您辞世而别,悲痛之极我在朋友圈写下父爱如山,山却倒了八个字,字字锥心,失去父亲的孩子是多么无助与悲痛。岁月如流,又是一年,往事并不如烟,心中隐隐名人名言警句篇(200)文案素材,凡是到达的地方,都属于昨天头条创作挑战赛名言名句篇(1001)1与其说是别人让你痛苦,不如说自己的修养不够。2无明实性即佛性,幻化空身即法身。3不宽恕众生,不原谅众生,是苦了你自己。4心若简单,生活就简单心抄书打卡坚持学习第4天如何处理流言呢?一是坦荡坦然,处之泰然。谁人背后无是非呢,你说你的话,我做我的事。这才是面对流言应有的态度。也只有这样,我们才不会被流言所伤。二是保持自己的原则和本色。无论是背后议4834万公里外,飞船传回难以置信的图片,天问一号也抓拍过每一个星球就是一个世界,星球有大有小,世界也因此有大有小。月球就是地球的伴生小世界。在数百年前,人们对近在咫尺的月亮也知之甚少,但现在,科学家们已经能够通过技术手段仔细观察数千万公第三批航天员即将登场10月最后一天,中国空间站最后一块拼图,梦天号实验舱就要在文昌启航,经过十几个小时追逐后,会和组合体对接,后续经过转位对接于永久停泊口,形成与核心舱,问天实验舱的三舱T字型构型,从独孤月与马兰星新传宇宙之锤爆裂的一瞬间,宇宙空间发生扭曲,独孤月看到眼前一片光芒,然后在远处出现一个黑点,自己随着宇宙碎片向黑点里飞去。在飞行的过程中,他的身体时而被拉长,时而被压扁,又时又四分五裂盘点双11真香数码好物,从手机到平板,选这3款才算会持家今年双11剁手节从开始到现在,大家都入手或者准备入手哪些心仪好物呢?无论你的购物车里已经结清了多少,或者还剩下多少,相信都是你在众多产品中挑出的高性价比好物,而作为一名数码老司机,
OPPOK10Pro入网,详细配置曝光开年以来oppo旗下的各个品牌新机发布接连不断,近日网上又爆出了OPPO即将的发布的新机OPPOK10Pro的相关信息。近日网上爆出消息,OPPO即将发布的手机OPPOK10Pro诺基亚X150曝光这样的诺基亚才豪横,实力重回巅峰众所周知,研发与创新是手机产业发展的基础。进入5G的元年后,诺基亚新机器的消息不断被曝光,从曝光的信息来看,诺基亚的新机器将有一些崭新的技术,并有望在新的智能手机时代彻底翻身,再次20多块买个NFC读写器复制下门禁卡本内容来源于什么值得买APP,观点仅代表作者本人作者ggenius樱木购买理由家里的指纹锁,老人指纹较浅,一直不太好用,所以想着写个钥匙贴贴手机里可以用外观展示一张集成PCB一张集太阳猛追35分,惜败快船!打湖人全力出击,打快船就轮休四大主力北京时间4月7日,NBA常规赛继续进行,在一场对双方排名和局势都没有任何影响的比赛中,却出现非常有意思的一幕,太阳直接全替补,而快船火力全开,但是两队打得都非常流畅,并没有什么仇恨地球命好有月亮老婆陪了45亿年,有个富老爸太阳,诞生了精灵人类无中生有,奇点爆炸,老祖宗宇宙创业60亿年后,诞生了银河宝宝,地球命好,有弟弟火星挡着,一边自转一边公转,气体相较固体有较差自转,导致磁场反转,月亮老婆陪了45亿年,最甚的是有个富李敏镐新剧变渣男,新代言眼镜广告帅出新高度一直都是饰演富人专业户的李敏镐,最近在改编自韩裔美籍作家李敏金的同名小说柏青哥Pachinko的电视剧中,就演活了渣男高汗秀这个角色,虽然剧中让人牙痒痒,但是回到现实代言,李敏镐还她是李幼斌的亲姐姐,国家一级演员,出道多年却拒绝与弟弟合作娱乐圈名副其实是一个圈,看似八竿子打不着的两人,却有着千丝万缕的联系。说起李幼斌老师,想必很多人并不陌生。无论是闯关东中胆大心思的朱开山,还是横空出世中的科学家陆光达,李幼斌总能用这10部烂片,每一部都在侮辱观众的智商,你见过几个?1。大话西游3造型震撼,演技夸张,故事不完整。这么烂的台词,这群人也能玩,值得培养。剧情没有太大问题,关键在于演员的选择。真的和原版差别不大,演员的演技也不是很惊艳。真的是各方面都女演员月入二万吐槽收入太低,月入二万算低么?科学告诉你答案近日,女演员张昊玥公开直播抱怨,并表示演员赚的钱没有大家想象中的么,称自己每年只工作半年,才能赚24万称以前拍戏挣得很多,现在拍戏的片酬少了许多。看到这里,小编默默的看向每个月30压了4年,删到45集,山河月明的底气不单是这8位实力演员给的文水煮娱小兔图来源于网络谢谢你的点击,期待你的喜欢,等待你的关注4月6日,一部观众看了两年多预告的电视剧突然空降上星,仅播了1集,不但拿到了收视第一,也引发了观众的热烈讨论。有心急那素芝口碑暴跌,马九斤演技饱受诟病,打狗棍演员现状如何?文老赵戏说编辑老赵戏说2013年由郭靖宇外公真实经历改编而来的打狗棍横空出世,为了演好这部剧郭靖宇的亲弟弟杨志刚曾说演不好对不起祖宗,不过随着当时收视率的节节攀升,想必兄弟俩也无愧