Gesucht: Sehr Schnell verketteten Listen in C

Ich versuche zu implementieren ist eine einfach verknüpfte Liste in C Eine gemeinsame Umsetzung, die Sie sehen, schwimmende rund um das internet ist so etwas wie

typedef struct {
  int head;
  Node *tail;
} Node;

mit Methoden wie

Node cons(int head, Node tail) {
  Node y;
  y.head = head;
  y.tail = malloc(sizeof(Node));
  *y.tail = tail;
}

Leistung ist sehr wichtig. Gibt es eine Möglichkeit zum implementieren Sie eine verkettete Liste in C, die wird schneller sein als dieses? Zum Beispiel, loszuwerden, die memory allocation (y.tail = malloc(sizeof(Node))) sollte eine signifikante Erhöhung der Geschwindigkeit.

  • Ich habe nie gesehen, dass ein Knoten deklariert mit einer int head. Vielleicht meinst du int payload? Gleiches gilt für eine Node *tail. Vielleicht meinst du Node *next? Auch mit Ihrer aktuellen definition von Knoten Nachteile(...), Sie haben einen Typenkonflikt von Node head zugeordnet int head. Nichts für ungut, aber es scheint zu sein, tiefere Probleme als die Leistung...
  • nicht-standard-inplementation ich denke... im Grunde Leiter=Daten-und tail=link! Hasse es, wenn manche Lehrer versuchen, übermäßig vereinfachen Dinge!
  • Ram Bhat - glaube nicht, können Sie die Schuld auf die Lehrer. Er sagte, er fand, dass "im Umlauf auf dem Internet'.
  • Einige wud sagen, das ist informelle Bildung 😀
  • Frage mich, wo Sie gefunden, dass floating around'. Your cons function doesn't even have a return statement. And since you are doing copy by value for Schwanz' zweimal, performance-Probleme woanders liegen, denke ich.
  • Dies macht Sinn in Bezug auf car und cdr.
  • Was sind die Anforderungen an den container? Ist es wirklich sein muss, eine verknüpfte Liste? Welche Operationen sind die häufigsten? Die Operationen Kosten die? Die Antwort ist: einen solchen container, der Ihren Anforderungen angepasst. Sie gar nicht schreiben, was Sie sind ... einfach nur genauer sein, zu sagen "ich brauche eine schnelle Link-Liste" ist nicht genug.
  • Wenn Sie auf der Suche für die link-Liste bietet, schneller traversal, schauen Sie auf skip-Listen.

Schreibe einen Kommentar