gpt4 book ai didi

c++ - 如何将二叉搜索树转换为双向链表?

转载 作者:可可西里 更新时间:2023-11-01 18:22:14 32 4
gpt4 key购买 nike

给定一个二叉搜索树,我需要在 C++ 中仅使用指向结构的指针将其转换为双向链表(通过以之字形顺序遍历),如下所示,

给定的树:

                1
|
+-------+---------+
| |
2 3
| |
+----+---+ +----+---+
| | | |
4 5 6 7
| | | |
+--+--+ +--+--+ +--+--+ +--+--+
| | | | | | | |
8 9 10 11 12 13 14 15

节点结构:

struct node
{
char * data;
node * left;
node * right;
};

创建列表(之字形顺序):

1 <-> 3 <-> 2 <-> 4 <-> 5 <-> 6 <-> 7 <-> 15 <-> ... <-> 8

有人可以帮帮我吗

最佳答案

这是一种广度优先搜索算法。 Wikipedia对如何实现它有很好的解释。

实现算法后,创建链表应该很简单(因为只需将每个访问的元素附加到列表中即可)

关于c++ - 如何将二叉搜索树转换为双向链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3742772/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com