Junior — Middle
Hogyan valósítható meg egy Set adatstruktúra a Go nyelven?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nincs beépített Set típus, de megvalósítható egy térkép (map) segítségével, ahol a kulcsok a kívánt típusúak, és érték lehet bool vagy egy üres struct{}. Például, egy stringekből álló halmaz így készíthető:
package main
import "fmt"
func main() {
set := make(map[string]struct{})
// Elemek hozzáadása
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Elem létezésének ellenőrzése
if _, exists := set["apple"]; exists {
fmt.Println("az alma benne van a halmazban")
}
// Elem törlése
delete(set, "banana")
// Elemenkénti iterálás
for key := range set {
fmt.Println(key)
}
}
A struct{} üres struktúra használata memória takarékos, mert 0 bájtot foglal el.