c++ - 为什么我们在 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;
}
}
解决方案
如果链中没有元素,则在前面添加新元素,否则通过散列,如果我们到达链或包含元素的桶,则将新元素插入链的开头,其余元素为链接到新节点的末尾。
推荐阅读
- javascript - 如何使用来自不同类的函数来获取 api?Javascript
- javascript - 具有自定义服务器的 next.js 应用程序未正确呈现
- ios - 使 UILabel 很好地适合集合视图单元格
- math - DFA + 带乘法、加法、括号的计数器
- sql - 如何在 SQL 中实现 ER 图中显示的客户和帐户表
- sql-server - 每个多维数据集 OLAP 多个事实表
- android - LinearLayout 不显示所有 ListView 但只有一个孩子
- reactjs - 在 React-Navigation 中获取任何设备上标签栏的高度
- go - Golang 的 `all goroutines are sleeps - deadlock!` 错误背后的算法是什么?
- javascript - 对对象内的对象使用 Object.assign