mirror of
https://github.com/krahets/hello-algo.git
synced 2026-09-01 04:47:12 +00:00
feat: add rust code for build_in_hash and hash_collision (#629)
* Create hash_map_chaining.rs * Create hash_map_open_addressing.rs * Create build_in_hash.rs * Update Cargo.toml
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* File: build_in_hash.rs
|
||||
* Created Time: 2023-7-6
|
||||
* Author: WSL0809 (wslzzy@outlook.com)
|
||||
*/
|
||||
|
||||
include!("../include/include.rs");
|
||||
|
||||
use crate::list_node::ListNode;
|
||||
use std::collections::hash_map::DefaultHasher;
|
||||
use std::hash::{Hash, Hasher};
|
||||
|
||||
/* Driver Code */
|
||||
fn main() {
|
||||
let num = 3;
|
||||
let mut num_hasher = DefaultHasher::new();
|
||||
num.hash(&mut num_hasher);
|
||||
let hash_num = num_hasher.finish();
|
||||
println!("整数 {} 的哈希值为 {}", num, hash_num);
|
||||
|
||||
let bol = true;
|
||||
let mut bol_hasher = DefaultHasher::new();
|
||||
bol.hash(&mut bol_hasher);
|
||||
let hash_bol = bol_hasher.finish();
|
||||
println!("布尔量 {} 的哈希值为 {}", bol, hash_bol);
|
||||
|
||||
let dec: f32 = 3.14159;
|
||||
let mut dec_hasher = DefaultHasher::new();
|
||||
dec.to_bits().hash(&mut dec_hasher);
|
||||
let hash_dec = dec_hasher.finish();
|
||||
println!("小数 {} 的哈希值为 {}", dec, hash_dec);
|
||||
|
||||
let str = "Hello 算法";
|
||||
let mut str_hasher = DefaultHasher::new();
|
||||
str.hash(&mut str_hasher);
|
||||
let hash_str = str_hasher.finish();
|
||||
println!("字符串 {} 的哈希值为 {}", str, hash_str);
|
||||
|
||||
let arr = (&12836, &"小哈");
|
||||
let mut tup_hasher = DefaultHasher::new();
|
||||
arr.hash(&mut tup_hasher);
|
||||
let hash_tup = tup_hasher.finish();
|
||||
println!("元组 {:?} 的哈希值为 {}", arr, hash_tup);
|
||||
|
||||
let node = ListNode::new(42);
|
||||
let mut hasher = DefaultHasher::new();
|
||||
node.borrow().val.hash(&mut hasher);
|
||||
let hash = hasher.finish();
|
||||
println!("节点对象 {:?} 的哈希值为{}", node, hash);
|
||||
}
|
||||
Reference in New Issue
Block a user