design frage iterator fuer trie



  • Hallo,

    ich implementiere gerade eine keyword matcher. ich habe den namen einer website als input und moechte schluesselwoerter finden.

    im moment habe ich einen trie implementiert der intern eine art iterator verwendet.

    z.b. www.hello.ru 
    lookup 1: w ... nicht im trie, abbrechen, naechstes zeichen
    lookup 2: w ... nicht im trie, abbrechen, naechstes zeichen
    lookup 3: w ... nicht im trie, abbrechen, naechstes zeichen
    lookup 4: h ... kein schluesselwoert, aber im trie
    lookup 5: he ... kein schluesselwoert, aber im trie
    lookup 6: hel ... kein schluesselwoert, aber im trie
    lookup 7: hello ... schluesselwoert gefunden
    lookup 8: hello. ... existiert nicht im trie, suche abbrechen
    lookup 9: e ... nicht im trie, abbrechen, naechstes zeichen
    lookup 10: l ... nicht im trie, abbrechen, naechstes zeichen
    lookup 11: l ... nicht im trie, abbrechen, naechstes zeichen
    usw....
    

    der iterator sollte den trie pointer speichern, so dass ich die suche nicht vom root knoten starten muss (fuer lookup 5-8).

    hier die zwei funktionen dazu: http://ideone.com/qpujaa
    wie kann ich exists_key verbessern? ich finde den code verbessern, und den iterator bauen?

    LG
    M


Anmelden zum Antworten