柿子饼同学 发表于 2022-6-30 14:59:52

如何用一个宽度为 2 的二维数组存二叉树?

结构体 , 指针太麻烦了 , 之前有人告诉我这个方法 , 但是不知道怎么实现 ?

傻眼貓咪 发表于 2022-6-30 15:07:23

可能因为 C 语言结构体 struct (链表)是动态,所以用结构体存二叉树最适合吧。

C++ 本身就是面向对象类型语言,动态储存方式有太多选择了(vector 或 string 就是其中例子)所以可以不用结构体存二叉树。

jhq999 发表于 2022-6-30 19:26:40

我猜
s;
s是数据
sleft(存的是下标)
sright(存的是下标)
就像用数组模仿链表

ExiaGN001 发表于 2022-7-1 20:25:33

jhq999 发表于 2022-6-30 19:26
我猜
s;
s是数据


宽度为2,朋友

jhq999 发表于 2022-7-1 22:52:00

ExiaGN001 发表于 2022-7-1 20:25
宽度为2,朋友

只能存left和right这两个数据下标,数据只能另外一个数组。

ExiaGN001 发表于 2022-7-2 07:10:53

jhq999 发表于 2022-7-1 22:52
只能存left和right这两个数据下标,数据只能另外一个数组。

是啊。
a可以存(a左子为a,右子为a)
a不行
a可以(a数据是a,左子是a],右子是a])

aaron0919 发表于 2022-7-31 16:23:04

S存父节点下标
S存数据
使用父亲表示法,利用了每个节点都只有一个父节点性质
但寻找子节点要遍历
页: [1]
查看完整版本: 如何用一个宽度为 2 的二维数组存二叉树?