Sobes.tech
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.