具有单独的左节点和右节点但尾部相同的双向链表

Doubly Linked List with separate left and right node but same tail

本文关键字:节点 尾部 双向链表 单独      更新时间:2023-10-16

>我正在研究双链表,其中头部必须拥有 2 只"手",左右,两只手必须最终位于同一条尾巴。最后,它应该能够打印出的值

  • 头部 - 左 - 尾部
  • 头 - 右 - 尾

就像二进制搜索一样,但必须在同一尾部结束。

我对应该使用什么来创建左右节点有点困惑。我尝试使用了很多中间插入方法,一周后我仍然不知道如何打印出我想要的打印出来。

我也尝试使用二进制搜索方法,参考这里,但无法弄清楚如何制作所有手都应该最终到达的这条尾巴。

这就是我编写结构的方式

struct City
{
    char name[20], place[20], food[20];
    struct City *next;
}
*head, *tail, *new, *right,*left,*del_temp, *temp, *temp2;

我也用过这个...但仍然没有解决

struct City
{
    char name[20], place[20], food[20];
    struct City *right;
    struct City *left;
}
*head, *tail, *new, *del_temp, *temp, *temp2;

很抱歉缺少代码,我用每种不同的插入方法制作了几个项目。我不确定该放哪一个。

我的问题是,我应该如何从这里开始?我应该为左手和右手使用树和子树吗?我应该使用什么算法?

如果我继续使用双链表,如何获得左手和右手的单独输出?或者,如果我要继续进行二进制搜索,我最终如何获得确切的尾巴?

有什么建议吗?

谢谢之前

你只需要使用一个循环双链表,这样它就会去

                               Head
                         Left        Right
                               Tail
将每个链接到

彼此的左右,以创建双链接,然后你可以做的是,当你想向右时,只需从头部开始,到右手,然后打印并停在尾部。左边也是如此,如果你需要从尾巴开始,你也可以这样做,因为你有一个唯一的指针。

https://i.stack.imgur.com/SCNzn.png

一幅画得很糟糕,但有箭头!

这更像是一个评论,但这是你想要的结构类型吗?

         .-> N1 <---> N2 <---> N3 <-.
Head <__/                             __> Tail
        .-> N4 <---> N5 <---> N6 <-./

我不确定您的确切要求是什么。