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

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

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

长得歪瓜裂枣,整得美若天仙,这7位女星都靠脸逆天改命在靠脸吃饭的娱乐圈,明星们动脸已不是什么稀奇事。通过动脸让颜值得到提升,本无可厚非,可是有些明星都换头了,还在不遗余力地营销自己的美貌,就有些说不过去了。提到换头,杨颖永远都是绕不我43岁,和老婆一辈子不生娃,卖掉房子带上家当,到小镇享受生活这是我们讲述的第1389位真人故事我是小成小成在云南,吉林人,43岁,跟妻子结婚10年,准备一辈子不生孩子。中专毕业后,我曾北漂五年,深漂两年,面对生活的压力和亲人的离去,感受不到代表委员荐湘书丨夏义生重中之重读出了重工人心中的星辰大海省政协委员,湖南省文联党组书记主席提名人选夏义生。红网时刻新闻1月15日讯(记者郭薇灿摄影陈杰)如果向大家推荐一本书,省政协委员湖南省文联党组书记主席提名人选夏义生说,他会选择重中心灵在天地间徜徉张永生拎着背囊看世界读后原标题心灵在天地间徜徉(主题)张永生拎着背囊看世界读后(副题)张庆和读张永生的游记拎着背囊看世界(北京燕山出版社),是心灵引领的行走。永生长期工作在天津,曾经做编辑工作多年,退休后人生,是一场充满意外的旅程2022年快接近尾声了,临别之际,回首这三年的疫情,从12月7日宣布全国解封以来,好像在向过去告别,仿佛人生进入了一个新纪元,特别像一场战役后独自站在废墟,这掉落一地的死伤回忆难过能始终不阳,主要看运气,不是个人努力就能决定的截至目前,不仅我,还包括我的妻儿,都是阴性。首先声明一点,我不是在吹嘘炫耀,更不是在幸灾乐祸,而只是在表明目前我的状态和心境。我全家是阴性的,但是,我很难保证,下一秒,是不是仍能保2022,人生大总结!(说得太对了)文飞鱼导语2022即将过完,而人生依然需要继续,一场大总结,不是结束,而是砥砺前行。01往事清零,余生欢笑。2022这一年,人生经历了太多风风雨雨,好的,坏的,一切都会成为过往。我波尔津吉斯我很享受在花园球馆打球那是展示自我的最大舞台直播吧1月14日讯今日奇才球员波尔津吉斯接受了NBA官网的采访。谈到在尼克斯打球的美好时光,波尔津吉斯表示我很想念在花园球馆打球,得到纽约球迷的爱和支持,那是一个展示自己的最大的舞读邓亚萍的人生让我们品味如何过好自己的人生邓亚萍前乒乓球领军人物,打破了教练对个子小选手打不了乒乓球的局限,成就了个人辉煌的乒乓球生涯,而且终身学习的践行者,她即使退役了,仍然在提升个人成长的路上,尤其听到她初学英语时AB人生有七道坎,看看你过了几道!头条创作挑战赛人生是一场轮回。我们从出生到老去,总是福祸相依,喜忧相伴。每一次经历我们得到了很多,也失去了很多。每一次的挫折都是磨练,每一次的成败都是成长,都是宝贵的人生财富。重要时光飞逝的文案1。岁月不居,时节如流。2。浮生若梦,为欢几何?3。光阴易逝,岂容我待。4。忘记今天的人将被明天忘记。5。时间是一味能治百病的良药。6。书籍是横渡时间大海的航船。7。年华转瞬,唯有
带上莫岛果酒开启春日第一场露营!趁阳光不燥,春风拂面,出发来一场露营吧,风筝草地油菜花,还有那一眼望不到头的明媚春色,带上美食和美酒,在山川江河边相聚,将一周的忧愁烦恼通通忘掉,只享受这春日限定的美好。在这个需要幽灵出动!侦察兵夜间战术训练堪比大片13C,西藏军区某旅侦察分队,在海拔4300米的雪域高原某训练场开展战术综合演练。此次演练以夜间行动为背景,全方位锤炼侦察兵在恶劣环境下遂行任务的能力。(王涛帅玉峰邵仁旺邓智文任百桂林超大片花海已上线!等你来打卡阳春三月,踏青正当时。灵川县三街镇龙坪村的油菜花现正进入盛花期,千亩油菜花竞相怒放,宛如一片金色海洋,吸引大批游客前来打卡赏花。满目金黄香百里,一方春色醉千山。步入三街镇龙坪村,千杨幂写真大片上新,百变造型长腿魅力值在线,暖春沐光氛围感满满杨幂又上线营业啦,这次是联合费加罗男士公开一组暖春沐光氛围大片,图片中的杨幂身穿不同风格的服装,展现最美的自信与时尚姿态,姐姐除了颜值身材时尚感在线,大长腿仍然是最吸睛的。今日较早春日黄昏阳台一隅谁说只有郊外踏青,才能到达诗与远方春耕进行时春天,是郊外踏青,尽情欣赏山河风光领略万物复苏的好季节。春天,也是诗与远方对芸芸众生,热情,却又不失理性的召唤。朋友常说,他要去外头寻找春天。但季秋却在自己家中的阳台一隅春日畅游济宁城,6大主题游览线路之祈福康养之旅养心之旅近年来,告别都市的喧嚣,开启一场回归自然颐养身心的康养之旅广受追捧。初春天气,天朗气清,气候宜人,开启一场春季漫游,感受自然的瑰丽再适合不过。今天,我们将带您开启一场净化心春日吃苦,胜似进补!吃好这几种苦菜,整个春季不生病虽说良药苦口,但五味中,苦味最不招人待见,可见没了它还真不行。酸甜苦辣咸,五味入五脏。苦入心,既能泻能燥,还能坚阴。上火了,喝杯苦丁茶,能泻火火热去了,阴液就能保住,这是坚阴。苦还龙岩漳平十里樱花开美丽经济来今年的中央一号文件提出推动乡村产业高质量发展,培育乡村新产业新业态。当前,福建漳平台湾农民创业园立足地方特色,通过农业等模式,积极推进农村一二三产业发展,走出一条以花为媒催生美丽经江西樟树油菜花开春意浓乡村旅游热起来来源人民网江西频道樟树市永泰镇官湖村的油菜花竞相绽放。周亮摄竞相绽放的油菜花吸引学生前来写生。周亮摄竞相绽放的油菜花吸引学生前来写生。周亮摄竞相绽放的油菜花吸引学生前来写生。周亮摄从临海括苍到天台,行赏山区风光昨天游神仙居景区,用腿过度,当天腿已酸胀,傍晚时分决定离开,去往临海市括苍镇,夜宿括苍,今早醒来,果然腿痛加重,看来括苍山是没法游了,只好在括苍镇永安溪畔游荡了几分钟,溪水澄蓝,沙北大之美,岂在朝朝暮暮在北大,有一群对美充满热爱和执着的人,数年如一日地追逐着霞光的脚步。未名湖畔天台角落暴雨过后天未明时他们有时落空,有时惊喜,登高望远,寻寻觅觅,只为捕捉到那个霞光染红天地的震撼瞬间