es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dibuje una lista doblemente enlazada utilizando Graphviz

He dibujado una lista doblemente enlazada usando Graphviz (dot) de la siguiente manera, pero los nodos no están alineados ¿Cómo puedo alinear los nodos?

digraph "Doubly Linked List" {
        rankdir=LR;
        node [shape=record];
        e [label="nil" shape=circle];
        a [label="{ <ref1> | <data> 1 | <ref2>  }"]
        b [label="{ <ref1> | <data> 5 | <ref2>  }"];
        c [label="{ <ref1> | <data> 7 | <ref2>  }"];
        d [label="nil" shape=circle];
        e -> a:ref1:c      [arrowhead=dot, arrowtail=vee, dir=both, headclip=false];
        a:ref2:c -> b:data:n [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
        b:ref2:c -> c:data:n [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
        c:ref2:c -> d      [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
        c:ref1:c -> b:data:s [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
        b:ref1:c -> a:data:s [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
}

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para alinear los nodos en el gráfico de lista doblemente enlazada, puedes establecer el mismo ancho para todos los nodos. Esto se hace añadiendo width=2.5 (o cualquier otro valor deseado) a la línea de atributos node:

    node [shape=record, width=2.5];
    

    Esto asegurará que todos los nodos tengan el mismo ancho, lo cual los alineará. Puedes ajustar el valor del ancho según sea necesario.

Comments are closed.