Exemplo n.º 1
0
        //удаление элемента
        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;
            }
            
        }
Exemplo n.º 2
0
     //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;
         
     }