//удаление элемента public bool TableDelete(long searchKey) { int key = this.HashIndex(searchKey); ChainNode currNode = this.table[key]; ChainNode beforeCurrentNode = null; while (currNode != null && currNode.GetItem().GetKey() != searchKey) { beforeCurrentNode = currNode; currNode = currNode.GetNext(); } if (currNode == null) { Console.WriteLine("Error, no such Item"); return false; } else { if (beforeCurrentNode == null) { this.table[key] = null; } else { beforeCurrentNode.SetNextChainNode(currNode.GetNext()); } this.NumberOfElements--; return true; } }
//public bool TableIsEmpty() { } public bool TableInsert(TableItemType _newItem) { ChainNode node = new ChainNode(_newItem); int key = this.HashIndex(_newItem.GetKey()); if (this.table[key] != null) { ChainNode tmp = this.table[key]; node.SetNextChainNode(tmp); this.table[key] = node; } else { this.table[key] = node; } this.NumberOfElements++; return true; }