Lineare Liste rekusiv füllen --> Seiteneffekte?
-
sorry schon geschnallt.....
-
Doch nicht....
Kannst Du mir diese Zeile nochmal genauer erklären?
return addValueToList((bigList->lists)[unsigned char(*p_value)],p_value);
-
Du rufst die Funktion "addValueToList()" für die i-te Liste in deiner BigList und den einzutagenden Wert auf:
bigList - Pointer auf BigList-Objekt bigList->lists - das List-Array in bigList (bigList->lists)[i] - das i-te Element in diesem List-Array (mit i=erstes Zeichen des einzutragenden Strings)
-
aber warum die Klammern um bigList->lists ???
-
die klammern kannst du dir auch sparen. die machen an der speziellen stelle keinen unterschied.
-
paddy@work schrieb:
aber warum die Klammern um bigList->lists ???
Die Antwort liegt in der Rangfolge der Operatoren
(wobei es hier keine Probleme geben sollte, wie c.rackwitz schon angemerkt hat)
-
Danke,
dann werde ich mir wohl die Arbeit machen....
Der Quelltext vorher sah echt schlimm aus
-
paddy@work schrieb:
Danke,
dann werde ich mir wohl die Arbeit machen....
Der Quelltext vorher sah echt schlimm ausvielleicht sollten wir erst drüber reden.
du willst eine million datensätze in einfach verketteten listen einfügen und suchen? bieten sich da nicht hash tables oder bäume an?
-
bei
return addValueToList(&bigList->lists[unsigned char(*p_value)],p_value);
sind viele listen völlig leer.
vielleicht magste lieberreturn addValueToList(&bigList->lists[unsigned char(*p_value)%16],p_value);
aber das führt uns eh sofort zu hashtables, also für 1 mio datensätze auch ca 1 mio verkettete listen und man berechnet vorher anhand aller buchstaben im string, wo er landen soll.
-
Es geht nicht um Millionen.
Es sind "lediglich" maximal 100.000 .
Wenn man die Windows.h (inklusive aller anderen in ihr enthaltenen Includes) parst findet er 14092 Makros bzw. Defines.Wenn dann noch eigene dazukommen, ist man maximal bei 100000
Ich habe die Liste fertig und sie ist schnell genug...
In der Liste werden die Makro's ihrem namen nach alphabetisch sortiert hinzugefügt. es reicht also vollkommen aus, wenn man 53 Listen nimmt.
a-zA-Z und _
Diese lineare Verteilung kommt auch in etwa hin.
Gruß Paddy