数据结构——符号表

Posted 364.99°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构——符号表相关的知识,希望对你有一定的参考价值。

1.概述

符号表: 将一个键于一个值联系起来(键值对),可以通过键(key)来查找对应的值(value)。

2.符号表的实现

package symboltable;

public class SymbolTable<Key,Value> 
    //内部结点类
    private class Node
        //键
        private Key key;
        //值
        private Value value;
        //下一个结点
        private Node next;

        public Node(Key key, Value value, Node next) 
            this.key = key;
            this.value = value;
            this.next = next;
        
    

    //首结点
    private Node head;
    //元素个数
    private int N;

    //构造器
    public SymbolTable() 
        head = new Node(null,null,null);
        N = 0;
    

    //获取键值对数
    public int size()
        return N;
    

    //插入键值对
    public void put(Key key,Value value)
        //表中有键为key的键值对
        //查找key对应的位置
        Node node = head;
        while (node.next != null)
            node = node.next;
            if (node.key.equals(key))
                //插入数据
                node.value = value;
                //结束方法
                return;
            
        

        //表中没有键为key的键值对
        Node oldFirst = head.next;
        Node newFIrst = new Node(key,value,oldFirst);

        head.next = newFIrst;
        //个数+1
        N++;
    

    //删除表中键为key的键值对
    public void delete(Key key)
        Node node = head;
        while (node.next != null)
            if (node.next.key.equals(key))
                //调整指针域实现删除
                node.next = node.next.next;
                N--;
                //结束方法
                return;
            
            node = node.next;
        
    

    //获取表中对应key的值
    public Value get(Key key)
        Node node = head;
        while (node.next != null)
            node = node.next;
            if (node.key.equals(key))
                return node.value;
            
        
        return null;
    


以上是关于数据结构——符号表的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

以下代码片段的算法复杂度

未解决的对“片段”部分中的符号“”的引用

2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段

vscode用啥符号把某一段代码包起来,类似C#的#region?

为啥这个代码片段说包含错误?