P1305 新二叉树 巧解
来源:互联网 发布:退款淘宝介入处理过程 编辑:程序博客网 时间:2024/06/16 07:06
题目描述
输入一串二叉树,用遍历前序打出。
输入输出格式
输入格式:第一行为二叉树的节点数n。
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式:前序排列的二叉树
输入输出样例
输入样例#1:
6abcbdicj*d**i**j**
输出样例#1:
abdicj
#include<iostream>#include<string.h>using namespace std;struct node{char l,r,fa;}tree[1000];void work(char s){cout<<s;if(tree[s].l!='*') work(tree[s].l);if(tree[s].r!='*') work(tree[s].r);}int main(){int i,n;char c,fir;cin>>n;for(int i=1;i<=n;i++){cin>>c;if(i==1) fir=c;cin>>tree[c].l>>tree[c].r;//tree[tree[c].l].fa=tree[tree[c].r].fa=c;}work(fir);return 0;}/*#include<stdio.h>#include<string.h>struct node{ //定义node类型 char lc,rc,fa; //分别有它的左儿子,右儿子和父亲};node tree[1000];void work(char s){ //简单的递归 printf("%c", s); if (tree[s].lc!='*') work(tree[s].lc); if (tree[s].rc!='*') work(tree[s].rc);}int main(){ int i,n; char c,fir; scanf("%d", &n); for (i=1;i<=n;i++){ //在这里我本来要用while循环,但是这样的话就保留不了树根的位置,所以用了for scanf(" %c", &c); if (i==1) fir = c; scanf(" %c%c", &tree[c].lc,&tree[c].rc); tree[tree[c].lc].fa = tree[tree[c].rc].fa = c; } work (fir); return 0;*/
阅读全文
0 0
- P1305 新二叉树 巧解
- 洛谷P1305 新二叉树
- 洛谷 P1305 新二叉树
- 洛谷 P1305 新二叉树
- 洛谷 P1305 新二叉树
- 洛谷P1305 新二叉树
- 洛谷 P1305 新二叉树
- 洛谷P1305 新二叉树
- 洛谷P1305新二叉树
- 【树】洛谷 P1305 新二叉树
- 完全二叉树插入新结点
- 萌新二叉树学习笔记
- 洛谷 1305——新二叉树
- tyvj p1305 最大自序和
- 萌新笔记之二叉搜索树(BST)
- 洛谷 1305_新二叉树_递归
- (数据结构)oj重建二叉树(用权值作为新二叉树的下标)
- 学习《数据结构》有感之新的创建二叉树和新的遍历的方法
- 数学问题
- 两张图搞定空间范围搜索
- HDU 1164 找素数因子
- 设置vnc使用ssl
- WOJ1293-数字三角形
- P1305 新二叉树 巧解
- HTML基础2
- 富文本文档学习
- 原生JS实现购物车的添加删除,以及总价计算的功能
- 2017年 Java Eclipse Dynamic Web proj 工程模板
- 注册码
- 【C】C语言内存函数
- Netty原理和使用
- UIFramework之Unity5.x AssetBundle打包策略