public static void Main() { var myhashtable = new MyHashTable<int, string>(); myhashtable.Add(3, "ar"); myhashtable[2] = "asd"; var indexCheck = myhashtable[2]; Console.WriteLine("toString:"); Console.WriteLine(myhashtable); Console.WriteLine("indexer:"); Console.WriteLine(myhashtable[2]); Console.WriteLine(indexCheck); Console.WriteLine("keys:"); var keysChecker = myhashtable.Keys; foreach (var key in keysChecker) { Console.WriteLine(key); } Console.WriteLine("count:"); Console.WriteLine(myhashtable.Count); Console.WriteLine("remove:"); myhashtable.Remove(4); Console.WriteLine(myhashtable[2]); myhashtable.Remove(2); Console.WriteLine(myhashtable[2]); Console.WriteLine("count:"); Console.WriteLine(myhashtable.Count); string res; var findChecker = myhashtable.Find(3, out res); Console.WriteLine("Find value by key 3:"); Console.WriteLine(res); Console.WriteLine(findChecker); Console.WriteLine(myhashtable); Console.WriteLine("clear"); myhashtable.Clear(); Console.WriteLine(myhashtable); Console.WriteLine("----"); Console.WriteLine("resize"); for (int i = 0; i < 100; i++) { myhashtable.Add(i, i.ToString()); } Console.WriteLine(myhashtable); }
private static void Main() { var hashTable = new MyHashTable<string, int>(); hashTable.Add("five", 5); hashTable.Add("six", 6); Console.WriteLine(hashTable.Find("five")); // throws exception //Console.WriteLine(hashTable.Find("seven")); //test auto grow for (int i = 0; i < 16; i++) { hashTable.Add(i.ToString(), i); Console.WriteLine(hashTable.Count); } Console.WriteLine(hashTable.Find("five")); Console.WriteLine(hashTable.Find("9")); Console.WriteLine(hashTable.Count); hashTable.Remove("9"); Console.WriteLine(hashTable.Count); Console.WriteLine("test indexator"); Console.WriteLine(hashTable["10"]); hashTable["10"]++; Console.WriteLine(hashTable["10"]); // throws exception //Console.WriteLine(hashTable.Find("9")); Console.WriteLine("Test HashTable.Keys enumerator:"); foreach (var key in hashTable.Keys) { Console.WriteLine(key); } Console.WriteLine("Test HashTable enumerator:"); foreach (var pair in hashTable) { Console.WriteLine("{0} -> {1}", pair.Key, pair.Value); } }
public void TestFind() { var hashTable = new MyHashTable<string, int> { { "five", 5 }, { "six", 6 } }; Assert.AreEqual(5, hashTable.Find("five")); }
public void TestAdd_Duplicates() { MyHashTable <string, int> hashTable = new MyHashTable <string, int>(); hashTable.Add("asd", 1); hashTable.Add("asd", 10); Assert.AreEqual(1, hashTable.Count); Assert.AreEqual(10, hashTable.Find("asd")); }
public void TestFind_Fail() { MyHashTable <string, int> hashTable = new MyHashTable <string, int>(); hashTable.Add("asd", 10); int count = 1000; for (int i = 0; i < count; i++) { hashTable.Add(i.ToString(), i); } int value = hashTable.Find("qwe"); }
public void TestFind_Success() { MyHashTable <string, int> hashTable = new MyHashTable <string, int>(); hashTable.Add("asd", 10); int count = 1000; for (int i = 0; i < count; i++) { hashTable.Add(i.ToString(), i); } int value = hashTable.Find("asd"); Assert.AreEqual(10, value); }
public static void Main() { var table = new MyHashTable<string, string>(); table.Add("first", "Pesho"); table.Add("second", "Gosho"); table.Add("third", "Tosho"); table.Add("fourth", "Ivan"); Console.WriteLine(table.Count); foreach (var pair in table) { Console.WriteLine("{0} -> {1}", pair.Key, pair.Value); } string first; table.Find("first", out first); Console.WriteLine(first); table.Remove("second"); Console.WriteLine(table.Count); foreach (var pair in table) { Console.WriteLine("{0} -> {1}", pair.Key, pair.Value); } Console.WriteLine(table["fourth"]); string[] keys = table.Keys; foreach (var key in keys) { Console.WriteLine(key); } table.Clear(); Console.WriteLine(table.Count); }
static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.Title = "Хэш таблицы.html"; //создается массив элементов размерности N = 56 int NumberElements = 56; var array = new int[NumberElements]; var rnd = new Random(); //генерируются ключи размерности m = 5 Console.WriteLine("Сгенерированные ключи:"); for (int i = 0; i < array.Length; i++) { array[i] = rnd.Next(10000, 100000); } OutArray(array, 1); int sizeTable = (int)Math.Round(NumberElements * 1.5); var hashTable = new MyHashTable(sizeTable, true); //var hashTable = new MyHashTable(sizeTable); Console.WriteLine(); Console.WriteLine(); //добавляем ключи в хэш таблицу for (int i = 0; i < array.Length; i++) { hashTable.Add(array[i]); } Console.WriteLine(); Console.WriteLine("Коэффициент заполнения таблицы = {0:0.000}", hashTable.CoefOccupancy); Console.WriteLine("Среднее число проб = {0:0.000}", hashTable.AverageCountAttempt); Console.WriteLine(); while (true) { Console.WriteLine("Хэш-таблица:"); hashTable.PrintTable(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("Интерактивный режим"); Console.WriteLine("1.Добавить ключ"); Console.WriteLine("2.Найти индекс по ключу"); Console.WriteLine("3.Удалить ключ"); Console.WriteLine("4.Заменить один ключ другим"); Console.WriteLine("5.Вывести параметры"); Console.WriteLine("0.Выход"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(); Console.Write("Выбор режима: "); var mode = Console.ReadLine(); int key1, key2; string str; switch (mode[0]) { case '1': Console.WriteLine("1.Свой ключ"); Console.WriteLine("2.Диапазон случайных"); Console.WriteLine(); Console.Write("Выбор режима: "); mode = Console.ReadLine(); switch (mode[0]) { case '1': Console.WriteLine(); Console.Write("Введите ключ = "); str = Console.ReadLine(); if (!int.TryParse(str, out key1)) { break; } if (hashTable.Add(key1)) { NumberElements++; } Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; case '2': Console.WriteLine(); Console.Write("Сколько ключей = "); str = Console.ReadLine(); if (!int.TryParse(str, out key1) || key1 < 0) { break; } var rand = new Random(); for (int i = 0; i < key1; i++) { if (hashTable.Add(rand.Next(10000, 99999))) { NumberElements++; } } Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; } break; case '2': Console.WriteLine(); Console.Write("Введите ключ = "); str = Console.ReadLine(); if (!int.TryParse(str, out key1)) { break; } hashTable.Find(key1); Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; case '3': Console.Write("Введите ключ = "); str = Console.ReadLine(); if (!int.TryParse(str, out key1)) { break; } if (hashTable.Remove(key1)) { NumberElements--; } Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; case '4': Console.WriteLine(); Console.Write("Введите ключ для замены = "); str = Console.ReadLine(); if (!int.TryParse(str, out key1)) { break; } Console.Write("Введите ключ чем заменить = "); str = Console.ReadLine(); if (!int.TryParse(str, out key2)) { break; } hashTable.Replace(key1, key2); Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; case '5': Console.WriteLine(); Console.WriteLine("Коэффициент заполнения таблицы = {0:0.000}", hashTable.CoefOccupancy); Console.WriteLine("Среднее число проб = {0:0.000}", hashTable.AverageCountAttempt); Console.WriteLine("Нажмите любую клавишу, чтобы продолжить"); Console.ReadKey(); break; case '0': return; default: break; } } }