惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
博客园 - 叶小钗
V
V2EX
博客园 - Franky
博客园_首页
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
S
SegmentFault 最新的问题
B
Blog RSS Feed
博客园 - 【当耐特】
D
Docker
N
Netflix TechBlog - Medium

明明如月成长笔记

个人数据的开源备份:从明清档案之殇想到的 简体字的双重优势:打字效率与扫盲成效全解析 四小时深圳书城奇遇:那些藏在书架间的偶然与必然 正式把我的笔记系统迁移到 Obsidian,为了和 AI 配合 Gemini CLI 登录踩坑记录:GOOGLE_CLOUD_PROJECT_ID 的坑与解法 在 MacOS 上,成功恢复存储卡上被误删的照片 AI CLI 工具:Claude Code, Codex, Gemini CLI, Qwen code, CodeBuddy cli, cursor-agent 我的常用命令 港漂日记62:父亲节独自带娃,室内游戏、香港公园探展、观鸟、品味米其林餐厅 南航随心飞机票爬虫解密 acw_sc__v2 港漂日记61:香港私立诊所首诊:商业医保如何改变我的就医体验? 香港历史博物馆:看秦始皇兵马俑,还能和孔子比身高? 港漂日记59:母亲节礼物!AI 涂色小技巧,让孩子的爱跃然纸上 港漂日记60:西营盘网红旧书店 Book & Go 淘书记 港漂日记58:萌娃中环学体操,课后老师狂点赞 五一游记D4:深圳笔架山儿童乐园,邂逅无人机送外卖 我的400篇博客都写了些什么 珊瑚海兔四岁啦 港漂日记D159:亲子同乐日:一场精彩的幼儿园嘉年华 蛇年春节自驾D10:东莞-深圳-香港 DeepSeek教我如何收拾行李箱 福田取逗留签 回港新方式 蛇年春节自驾D9:江门-顺德-东莞 中国侨都华侨华人博物馆 东莞迎宾馆 蛇年春节自驾D8:茂名-开平-江门 挥春作业 粤西堵车 开平碉楼 迎财神 茂名博物馆参观记 蛇年春节自驾D7:茂名 中国第一摊 茂名博物馆 亚朵酒店 蛇年春节自驾D6:南宁-茂名 发财树 青秀山 路途亲子游戏 蛇年春节自驾D5:南宁过大年 醒狮贺岁 三街两巷 特色美食 骑行穿城 琅西夜市 打铁花 新春好!我用DeepSeek写祝福,顺便送你三款红包封面 蛇年春节自驾D4:钦州-南宁 钦州老街,万丽年夜饭 蛇年春节自驾D3:海陵岛-钦州 绝美悬崖餐厅,海景房租赁行情 明明如月成长笔记2024年公众号创作回顾(含免费红包封面🧧) 蛇年春节自驾D2:深圳-阳江-海陵岛
poj2255给定二叉树的前序和中序,输出后序
lmm333 · 2010-12-15 · via 明明如月成长笔记

我的递归思维一直很差,潜意识里总是觉得这种思维不是真正的解决问题,所以,总是想用递推思维思考问题。

给定二叉树的前序和中序,输出后序是数据结构中的基本问题,我一直不敢上机实践,就怕自己做不出来。恰好今晚有两个战友,无聊之极,试一试,果断AC了,当然,这题poj的数据比较弱,我去了zoj,依然ac,估计水题没必要出强大数据吧。

期末要考《数据结构》这题给了我很大信心,真的!

很难想象,这是我poj的第206题,呵呵,今晚战胜了心魔,熬夜,值了!!!

贴一个poj上的递推代码,很漂亮。

#include <iostream>

#include <string>

using namespace std;

string f(string s1,string s2)

{

if(s1.length()==1) return s1;

else if(s1.length()==0) return "";

else

{

size_t m=s1.find(s2[0]);

return f(s1.substr(0,m),s2.substr(1,m))+f(s1.substr(m+1),s2.substr(m+1))+s2[0];

}

}

int main()

{

string s1,s2,s;//s1为preorder traversal  s2为inorder traversal 

while(cin>>s1>>s2)

{

s=f(s2,s1);

cout<<s<<endl;

}

return 0;

}

偷偷把我的代码放到最后,就不解释了吧。。。

/* 

 * File:   main.cpp

 * Author: lmm333

 * Created on 2010年12月16日

 */

#include <iostream>

#include <string>

using namespace std;

char a[30],b[30];

void f(int a1,int b1,int a2,int b2){

    int l,r,p2,i;

    char p1=a[a1];

    for(i=a2;i<=b2;i++){

        if(b[i]==p1)break;

    }

    l=i-a2;

    r=b2-i;

    if(l==0);

    else if(l==1)

        put("%c",b[a2]);

    else f(a1+1,i-1,a2,i-1);

    if(r==0);

    else if(r==1)

        put("%c",b[i+1]);

    else f(a1-a2+i+1,b1,i+1,b2);

    put("%c",b[i]);

}

int main(){

    int l;

    while(scanf("%s%s",a,b)!=EOF){

        l=strlen(a);

        f(0,l-1,0,l-1);

        puts("");

    }

}