static void Main(string[] args) { List list = new List(); int whatDo = -1; while (whatDo != 0) { Console.WriteLine("0 - exit"); Console.WriteLine("1 - add element to tail"); Console.WriteLine("2 - add element to head"); Console.WriteLine("3 - add element to position"); Console.WriteLine("4 - delete element"); Console.WriteLine("5 - exist element"); whatDo = Convert.ToInt32(Console.ReadLine()); if (whatDo == 1) { Console.WriteLine("Enter number for add - "); int newNum = Convert.ToInt32(Console.ReadLine()); list.AddElement(newNum); } if (whatDo == 2) { Console.WriteLine("Enter number for add - "); int newNum = Convert.ToInt32(Console.ReadLine()); list.AddElementToHead(newNum); } if (whatDo == 3) { Console.WriteLine("Enter number for add - "); int newNum = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter number position to add - "); int numPos = Convert.ToInt32(Console.ReadLine()); list.AddElementToPosition(newNum, numPos); } if (whatDo == 4) { Console.WriteLine("Enter number for delete - "); int deleteNum = Convert.ToInt32(Console.ReadLine()); list.DeleteElement(deleteNum); } if (whatDo == 5) { Console.WriteLine("Enter number for exist - "); int existNum = Convert.ToInt32(Console.ReadLine()); if (list.Exist(existNum)) Console.WriteLine("{0} exist", existNum); else Console.WriteLine("{0} not exist", existNum); } list.Print(); } }
/// <summary> /// Function to change hash function without delete elements /// </summary> /// <param name="func"></param> public void ChangeHashFunction(HashFunctionInterface func) { List[] temp = new List[bucket.Length]; for (int i = 0; i < bucket.Length; i++) temp[i] = new List(); for (int i = 0; i < bucket.Length; i++) { while (!bucket[i].IsEmpty()) { temp[func.Function(bucket[i].ValueHead()) % temp.Length] .AddElementToHead(bucket[i].ValueHead()); bucket[i].DeleteElement(bucket[i].ValueHead()); } } hashFunction = func; bucket = temp; }
// Initialize bucket. private void Init(int size) { bucket = new List[size]; for (int i = 0; i < size; i++) bucket[i] = new List(); }
public Hash(int size) { bucket = new List[size]; for (int i = 0; i < size; i++) bucket[i] = new List(); }