博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
已知先序中序求后序 C实现(分治法)
阅读量:4217 次
发布时间:2019-05-26

本文共 883 字,大约阅读时间需要 2 分钟。

知识盲点:

对数组掌握不牢固 

int a[5] = {1,2,3,4,5};

int *b;

b = &a[1];

b[2] = 4;

此实现传递的是数组指针,上一篇中实现是传递 数组下标。

传递下标 : in[in_pos+i]  ==  pre[pre_pos];

传递指针 : in[i]  ==  *pre;

为什么能实现两者的 等价(对于右边递归而言   左边同样道理) 

in[I] = in[(in+i+1)+i]   // in+i+1是上一次地址

关键 就在于递归调用传递 指针, 对in赋值时候,使 i   和       in_pos+i 具有同样的 效果(即指向同样的位置);

实现: 

#include
#include
void to_post_tree(char* pre, char* in, int length){ char ch; if (length == 0) return; ch = *pre; int i; for (i = 0; i < length; i++) { if (in[i] == *pre) { break; } } to_post_tree(pre+1, in, i); to_post_tree(pre + i + 1, in + i + 1, length - i - 1); printf("%c", ch);}int main(){ char pre[8] = {'G','D','A','F','E','M','H','Z'}; char in[8] = {'A','D','E','F','G','H','M','Z'}; to_post_tree(pre, in, 8); return 0;}

另一种实现的 核心地方(注意对比):

 for (i = 0; i < n; i++) {          if (in[in_pos + i] == root)  //root等价于上面的 *pre;            break;      }  

转载地址:http://fximi.baihongyu.com/

你可能感兴趣的文章
Web前端学习笔记——JavaScript之特效
查看>>
Web前端学习笔记——JavaScript之事件详解
查看>>
Web前端学习笔记——JavaScript之事件、创建元素、节点操作
查看>>
Web前端学习笔记——JavaScript之正则表达式、伪数组、垃圾回收
查看>>
Web前端学习笔记——JavaScript 之继承、函数进阶
查看>>
Web前端学习笔记——JavaScript之面向对象游戏案例:贪吃蛇
查看>>
Web前端学习笔记——JavaScript之面向对象编程
查看>>
上海控安成功举办普陀区科普创新专项智能网联车学术活动
查看>>
控安轩辕实验室:利用开源项目实现定位和时间欺骗(二)
查看>>
基于预测的自动驾驶全球导航卫星系统欺骗攻击检测
查看>>
上海工业互联网协会安全专委会成立,加快提升工业互联网安全保障能力
查看>>
普陀区委副书记顾军、区政府副区长魏静带队调研上海控安
查看>>
上海市水务工控系统安全联合研究实验室正式启用
查看>>
基于数字孪生的水务系统安全试验床正式上线
查看>>
上海控安成功入选“2020年度上海市工业互联网平台和专业服务商推荐目录”
查看>>
多传感器融合定位是否足够安全?(一)
查看>>
多传感器融合定位是否足够安全?(二)
查看>>
上海申通地铁集团院士专家工作站与上海控安达成战略合作
查看>>
多传感器融合定位是否足够安全?(三)
查看>>
光靠欺骗检测是不够的:对抗多目标跟踪的攻击
查看>>