pl: Zeiger Wettrennen

Beitrag lesen

Hello,

ich hätte dazu mehrere Fragen:

  1. Wie lange soll die Liste bestehen? Wird sie während ihrer Lebensdauer mehrfach durchsucht?
  2. Ist die Liste sortiert, bzw. indiziert?
  3. Um welche Datentypen handelt es sich? Sind diese ggf. sogar ordinal?
  4. Könntest Du die Liste als (balncierten) Baum aufbauen?

Ja, sowas lernt man in der Schule.

Mehrere Zeiger hat mMn keinen Nutzen.

Doch, haben sie. Das zeigt die Praxis.

Als Anregung könntest Du dir mal im Reverse Engeneering anschauen, wie PHP das mit seinen "Array"-Strukturen macht. Das sind verschachtelte (sortierte) Listen von Hashes der Werte. Wo das eigentliche Datenelement dann im Speicher liegt, ist sekundär.

In C ist das genau andersherum. Also in PHP und auch in Perl heißt Random Access Zugriff auf Datenstrukturen. In C jedoch heißt Random Access in erster Linie Speicheradressierung.

Array's in C sind überhaupt kein Problem: Wenn man einen numerischen Index nutzen kann. Was C jedoch nicht kennt sind assoziative Datenstrukturen (Hashes). Natürlich kann man sich auch in C einen Hash bauen wenn man für seine Schlüssel einen Hashalgorithmus hat. Das kostet aber auch CPU und damit Zeit, einen solchen Algorithmus zu implementieren, lohnt sich also auch nur unter bestimmten Umständen, z.B. dann wenn Daten persistent im Hauptspeicher liegen (was in meiner Anwendung nicht der Fall ist).

MfG

0 52

Zeiger Wettrennen

  1. 0
    1. 0
      1. 0
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
        2. 0
    2. 0
      1. 0
        1. 0
          1. 0
      2. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                      2. 0
              2. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                2. 0
                  1. 0
        2. 0
          1. 0
        3. 0
          1. 0
            1. -3
              1. 0
                1. 0
                  1. 6
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                      2. 0
                        1. 0
                        2. 0
                          1. 0
                            1. 0
                              1. 2
                                1. 0