Bảng băm trong C++

The Hashtable is a non-generic collection that stores key-value pairs, similar to generic Dictionary collection. It optimizes lookups by computing the hash code of each key and stores it in a different bucket internally and then matches the hash code of the specified key at the time of accessing values.

Đặc điểm Hashtable

  • Hashtable lưu trữ các cặp khóa-giá trị
  • Thuộc không gian tên System.Collections
  • Triển khai giao diện IDictionary
  • Các khóa phải là duy nhất và không thể rỗng
  • Các giá trị có thể là null hoặc trùng lặp
  • Các giá trị có thể được truy cập bằng cách chuyển khóa liên quan trong bộ chỉ mục e. g. myHashtable[key]
  • Các phần tử được lưu trữ dưới dạng đối tượng DictionaryEntry

Tạo một Hashtable

Ví dụ sau minh họa việc tạo Hashtable và thêm các phần tử

Ví dụ. Tạo và thêm phần tử

Hashtable numberNames = new Hashtable();
numberNames.Add(1,"One"); //adding a key/value using the Add() method
numberNames.Add(2,"Two");
numberNames.Add(3,"Three");

//The following throws run-time exception: key already added.
//numberNames.Add(3, "Three"); 

foreach(DictionaryEntry de in numberNames)
    Console.WriteLine("Key: {0}, Value: {1}", de.Key, de.Value);
		
//creating a Hashtable using collection-initializer syntax
var cities = new Hashtable(){
	{"UK", "London, Manchester, Birmingham"},
	{"USA", "Chicago, New York, Washington"},
	{"India", "Mumbai, New Delhi, Pune"}
};
		
foreach(DictionaryEntry de in cities)
    Console.WriteLine("Key: {0}, Value: {1}", de.Key, de.Value);

Thử nó

Bộ sưu tập Hashtable có thể bao gồm tất cả các thành phần của Từ điển, như hình bên dưới

Ví dụ. Thêm từ điển vào Hashtable

Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");

Hashtable ht = new Hashtable(dict);

Thử nó

Cập nhật Hashtable

Bạn có thể truy xuất giá trị của khóa hiện có từ Hashtable bằng cách chuyển khóa vào bộ chỉ mục. Hashtable là một bộ sưu tập không chung chung, vì vậy bạn phải nhập các giá trị truyền trong khi truy xuất nó

Ví dụ. Cập nhật Hashtable

//creating a Hashtable using collection-initializer syntax
var cities = new Hashtable(){
	{"UK", "London, Manchester, Birmingham"},
	{"USA", "Chicago, New York, Washington"},
	{"India", "Mumbai, New Delhi, Pune"}
};
    
string citiesOfUK = (string) cities["UK"]; //cast to string
string citiesOfUSA = (string) cities["USA"]; //cast to string

Console.WriteLine(citiesOfUK);
Console.WriteLine(citiesOfUSA);

cities["UK"] = "Liverpool, Bristol"; // update value of UK key
cities["USA"] = "Los Angeles, Boston"; // update value of USA key

if(!cities.ContainsKey("France")){
    cities["France"] = "Paris";
}

Thử nó

Xóa phần tử trong Hashtable

Phương thức

Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");

Hashtable ht = new Hashtable(dict);
1 xóa khóa-giá trị khớp với giá trị được chỉ định trong Hashtable. Nó ném
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");

Hashtable ht = new Hashtable(dict);
3 nếu không tìm thấy khóa được chỉ định trong Hashtable, vì vậy hãy kiểm tra khóa hiện có bằng phương pháp
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");

Hashtable ht = new Hashtable(dict);
4 trước khi xóa

Bảng băm trong C là gì?

Bảng Băm trong C/C++ (Mảng kết hợp) là cấu trúc dữ liệu ánh xạ khóa tới giá trị . Cái này sử dụng hàm băm để tính chỉ mục cho một khóa. Dựa vào chỉ số Hash Table ta có thể lưu trữ giá trị tại vị trí thích hợp.

Có thư viện bảng băm trong C không?

Thư viện C chuẩn không bao gồm bất kỳ cấu trúc dữ liệu lớn, liên tục nào - không phải danh sách, cây, ngăn xếp hay bảng băm.

C có hàm băm không?

Các loại hàm băm trong C . Ví dụ. các phần tử được đặt trong bảng băm là 42,78,89,64 và hãy lấy kích thước bảng là 10. the hash function is dependent upon the remainder of a division. Example: elements to be placed in a hash table are 42,78,89,64 and let's take table size as 10.

Làm cách nào để triển khai hàm băm trong C?

Đầu ra của chương trình cũng được hiển thị bên dưới. 1. Tạo cấu trúc, dữ liệu (mục bảng băm) với khóa và giá trị là dữ liệu. 2. .
Tạo một mảng cấu trúc, dữ liệu (i. e một bảng băm)
Lấy một khóa được lưu trữ trong bảng băm làm đầu vào
Tương ứng với khóa, một chỉ mục sẽ được tạo