首页 > 解决方案 > 为什么我们在 C++ 中使用 pos?假设我的代码 int pos = cHash(symbol);

问题描述

所以我正在为我的编译器课程做一个 SymbolTable 程序......我遇到了一个问题pos......为什么我们首先要使用它?TIA <3

void insert(char *symbol, char *type)
{
    int pos = cHash(symbol);

    if (block[pos] == NULL)
    {
        block[pos] = new SymbolInfo();
        block[pos]->symbol = symbol;
        block[pos]->type = type;
        block[pos]->next = NULL;
    }
    else
    {
        SymbolInfo *newNode = new SymbolInfo();
        newNode->symbol = symbol;
        newNode->type = type;

        // pointer swap
        SymbolInfo *nextNode = block[pos];
        block[pos] = newNode;
        newNode->next = nextNode;
    }
}

标签: c++data-structureshashhashtabletheory

解决方案


如果链中没有元素,则在前面添加新元素,否则通过散列,如果我们到达链或包含元素的桶,则将新元素插入链的开头,其余元素为链接到新节点的末尾。


推荐阅读