hi, ich würde gern ein dynamisches array implementieren. jetzt stellt sich mir die frage, wie man sowas am besten angeht?
axo, ich würd es gern in c machen und kann schon programmieren, es geht also eher um den richtigen algorithmus. besonders bekomme ich probleme beim einfügen und entfernen, weil ich dann nicht genau weiß wie groß der neue datenblock werden muss?
Verkettete liste schrieb: > Such mal nach verketteten Listen. sowas passt bei mir nicht so rein, grund ist folgender: ich hab zzt. ein stack und der ist mit realloc implementiert (ich hab auch einen mit ner liste, aber der kommt in dem speziellen fall nicht zum einsatz), jetzt hab ich im code der stack 'klasse' eine funktion die einen O(1) index zugriff auf die daten anbietet. streng genommen ist es dann kein stack mehr. nun bin ich ein bischen beim saubermachen und will diese funktion aus der stack 'klasse' entfernen und dafür ein array verwenden. also, ich komme zum punkt... das array soll meine stack implementation ersetzen, ohne dass ich jetzt groß im projekt rumwursteln muss. und da ich das array dann gleich sauber implementieren will, stellt sich mir die frage: angenommen es schaut so aus:
1 | array |
2 | 0 -> 1 |
3 | 1 -> 1 |
4 | 2 |
5 | 3 |
6 | 4 |
7 | 5 -> 1 |
einträge 2,3 und 4 sind 'leer' wenn ich jetzt 5 lösche, ist meine neue array größe 2. ich denke, ich muss mir merken, welche stellen frei/besetzt sind und dann den letzten besetzte eintrag suchen. dafür brauch ich was schnelles. gedacht hab ich z.b. an ein bitfield? gibts da was besseres? danke schon mal :)
echtes c, Oder darfs auch c++ sein? siehe http://www.cplusplus.com/reference/stl/vector/ Es gibt sogar eine spezielle Bitfeld Implementation.
Stefan B. schrieb: > echtes c, Oder darfs auch c++ sein? c++ liegt mir nicht so. Stefan B. schrieb: > siehe http://www.cplusplus.com/reference/stl/vector/ vektor hab ich gesucht, das passt super. dann kann ich mir auch das bitfield schenken und schiebe nach lösch operationen zu und vor dem einfügen auf was eh nicht oft vorkommen sollte. danke!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.