将顺序二叉树存储序列转化为链式存储序列
- 题目描述:
题解思路:首先理解二叉树的顺序存储结构原理,首先根节点的编号(下标)为1的是根节点,左孩子下标为2i,右孩子是2i+1。在二叉树的链式存储中是按照先序输出的序列输出的,那么思路一:二叉树的先序输出序列(包括‘0’)就是链式的输入输入序列。思路二:常见的是,根据顺序二叉树输入序列的性质,可以知道每个数组元素的在二叉树中的对应位置,利用递归算法。,将给定顺序二叉树存储序列转换为链式二叉树存储序列显示
char data[13] = {‘0’,‘A’,‘B’,‘C’,‘0’,‘D’,‘E’,‘F’,‘0’,‘0’,‘G’,‘H’,‘0’,‘I’}
思路二的代码描述:
void Link(char data[],int i) {printf("%c ",data[i]);if(data[2*i]!='0'&&2*i<14){Link(data,2*i);}else{printf("%c ",'0');}if(data[2*i+1]!='0'&&2*i+1<14){Link(data,2*i+1);}else{printf("%c ",'0');}}
结果显示:
如果觉得《将顺序二叉树存储序列转化为链式存储序列-c语言》对你有帮助,请点赞、收藏,并留下你的观点哦!