Exemplo n.º 1
0
            public void print()
            {
                hashnode current = null;

                for (int i = 0; i < size; i++)
                {
                    current = table[i];
                    if (current == null)
                    {
                        Console.Write("- Unused Hash Table 'Bucket'");
                    }
                    int j = 0;  //int j just used for --> visuals on console
                    while (current != null)
                    {
                        if (j > 0)
                        {
                            Console.Write(" --> ");
                        }
                        if (j == 0)
                        {
                            Console.Write("Hash Table 'Bucket' {0} : ", i);
                        }
                        Console.Write("[" + current.getdata() + "]");
                        current = current.getNextNode();
                        j++;
                    }
                    Console.WriteLine();
                }
                Console.WriteLine("------------------------------");
                Console.WriteLine();
            }
Exemplo n.º 2
0
        public void remove(int key)
        {
            int hash = key % size;

            while (table[hash] != null && table[hash].getkey() % size != key % size)
            {
                hash = (hash + 1) % size;
            }
            //a current node pointer used for traversal, currently points to the head
            hashnode current   = table[hash];
            bool     isRemoved = false;

            while (current != null)
            {
                if (current.getkey() == key)
                {
                    table[hash] = current.getNextNode();
                    Console.WriteLine("entry removed successfully!");
                    isRemoved = true;
                    break;
                }

                if (current.getNextNode() != null)
                {
                    if (current.getNextNode().getkey() == key)
                    {
                        hashnode newNext = current.getNextNode().getNextNode();
                        current.setNextNode(newNext);
                        Console.WriteLine("entry removed successfully!");
                        isRemoved = true;
                        break;
                    }
                    else
                    {
                        current = current.getNextNode();
                    }
                }
            }

            if (!isRemoved)
            {
                Console.WriteLine("nothing found to delete!");
                return;
            }
        }
Exemplo n.º 3
0
        public string retrieve(int key)
        {
            int hash = key % size;

            while (table[hash] != null && table[hash].getkey() % size != key % size)
            {
                hash = (hash + 1) % size;
            }
            hashnode current = table[hash];

            while (current.getkey() != key && current.getNextNode() != null)
            {
                current = current.getNextNode();
            }
            if (current.getkey() == key)
            {
                return(current.getdata());
            }
            else
            {
                return("nothing found!");
            }
        }
Exemplo n.º 4
0
        public void print()
        {
            hashnode current = null;

            for (int i = 0; i < size; i++)
            {
                current = table[i];
                while (current != null)
                {
                    Console.Write(current.getdata() + " ");
                    current = current.getNextNode();
                }
                Console.WriteLine();
            }
        }