Dijkstra的双链跳过列表算法?

所以我在为特定程序实现Dijkstra时遇到麻烦。这是我用作“节点”的当前结构:

struct Ladders{
    LONG x1;
    LONG y1;
    LONG y2;
    struct Platforms *top;
    struct Platforms *bottom;
};

struct JumpPath{
    double jumpCost;
    int direction;
    bool leftEdge;
    struct Platforms *jumpStart;
    struct Platforms *jumpEnd;
};

struct Platforms{
    LONG x1;
    LONG y1;
    LONG x2;
    LONG y2;
    int index;
    int platNode;
    int id;
    struct Platforms *prev;
    struct Platforms *next;
    struct Ladders *rope;
    std::vector<JumpPath*> jump;
};
std::vector<Platforms*>P;

So P is holding all of my platform data in the form of nodes. Each node contains platforms that are connected at the vertices. So in essence, just a doubly linked list. The jump paths and ladders represent a skip to another node, making this a doubly linked skip list. All in all, I am trying to figure out the best way to implement dijkstra's algorithm for my program because I need to save the path as well. The below image is how my nodes are structured: Heres my precalculated node path

如何记录算法采用的路径,是否应该使用另一个向量来做到这一点?我还在考虑创建另一个名为Edges的结构,并保留所有信息,例如它是否来自,将要到达的跳跃,成本和顶点。唯一的问题是,我不知道如何按照路径顺序跟踪它们。