建立二叉树的二叉链表(严6.65)--------西工大noj
需要注意的点:在创建二叉树的函数中,如果len1==len2==0,一定要把(*T)置为NULL然后退出循环

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct TreeNode
{
    char data;
    struct TreeNode* LChild, *RChild;
}TreeNode;
void Create(TreeNode** T, char *s1, int len1, char *s2, int len2)
{
    if(len1==0)
    {
        (*T) = NULL;
        return;
    }
    (*T) = (TreeNode*)malloc(sizeof(TreeNode));
    if(len1==1)
    {
        (*T)->data = s1[0];
        (*T)->LChild = 0;
        (*T)->RChild = 0;
        return;
    }
    char root = s1[0];
    int rp = 0;
    for(rp = 0; rp < len1; rp++)
    {
        if(s2[rp]==root)
            break;
    }
    (*T)->data = s1[0];
    Create(&(*T)->LChild,s1+1,rp,s2,rp);
    Create(&(*T)->RChild,s1+1+rp,len1-rp-1,s2+rp+1,len1-rp-1);
}
void Print(TreeNode *T)
{
    if(!T)
        return;
    Print(T->LChild);
    Print(T->RChild);
    printf("%c",T->data);
}
int main()
{
    static char s1[10000];
    static char s2[10000];
    scanf("%s",s1);
    scanf("%s",s2);
    int lenth = strlen(s1);
    TreeNode *T;
    Create(& T, s1, lenth, s2, lenth);
    Print(T);
    return 0;
}
/*
in:
ABDFGCEH
BFDGACEH
out:
FGDBHECA
*/
												
											建立二叉树的二叉链表(严6.65)--------西工大noj的更多相关文章
- 建立二叉树的二叉链表存储结构(严6.70)--------西工大noj
		
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct TreeNode ...
 - 二叉树的二叉链表存储结构及C++实现
		
前言:存储二叉树的关键是如何表示结点之间的逻辑关系,也就是双亲和孩子之间的关系.在具体应用中,可能要求从任一结点能直接访问到它的孩子. 一.二叉链表 二叉树一般多采用二叉链表(binary linke ...
 - C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)
		
今天写的是二叉树操作的实验,这个实验有三个部分: ①建立二叉树,采用二叉链表结构 ②先序.中序.后续遍历二叉树,输出节点值 ③销毁二叉树 二叉树的节点结构定义 typedef struct BiTNo ...
 - 二叉树(二叉链表实现)JAVA代码
		
publicclassTest{ publicstaticvoid main(String[] args){ char[] ch =newchar[]{'A','B ...
 - C#实现二叉树--二叉链表结构
		
二叉树的简单介绍 关于二叉树的介绍请看这里 : 二叉树的简单介绍 http://www.cnblogs.com/JiYF/p/7048785.html 二叉链表存储结构: 二叉树的链式存储结构是指,用 ...
 - c使用二叉链表创建二叉树遇到的一些疑问和思考
		
二叉链表存储二叉树 学习的时候参考的是<大话数据结构>,书中是这样定义的 typedef char TElemType; typedef struct BiTNode { TElemTyp ...
 - 二叉树、二叉搜索树、平衡二叉树、B树、B+树的精确定义和区别探究
		
概述 关于树的概念很多,B树,B+树,红黑树等等. 但是你去翻翻百度百科,或者用百度或者谷歌搜索一下中文的树结构的介绍,全都是狗屁.没有哪个中文网站是真正精确解释树的定义的,尤其是百度百科. 下面我要 ...
 - 数据结构中的树(二叉树、二叉搜索树、AVL树)
		
数据结构动图展示网站 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.它是由n(n>=1)个有限节点组成一个具有 ...
 - 二叉树系列 - 二叉搜索树 -  [LeetCode] 中序遍历中利用 pre节点避免额外空间。题:Recover Binary Search Tree,Validate Binary Search Tree
		
二叉搜索树是常用的概念,它的定义如下: The left subtree of a node contains only nodes with keys less than the node's ke ...
 
随机推荐
- 羽夏 MakeFile 简明教程
			
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.该文章根据 GNU Make Manual 进行汉化处理并作出自己的整理,一是我对 Make 的学习记录,二是对大家学习 MakeF ...
 - nginx1.1    nginx介绍和反向代理
			
1.什么是nginx nginx是一个高性能的http和反向代理的web服务器,所占内存小,高并发 nginx默认端口:80端口 命令存放目录:cd /usr/local/nginx/sbin 配置文 ...
 - HCNP Routing&Switching之链路聚合
			
前文我们了解了MSTP相关话题,回顾清参考https://www.cnblogs.com/qiuhom-1874/p/16268682.html:今天我们来聊一聊链路聚合相关话题: 链路聚合是链路高可 ...
 - Angular核心概念
			
一.集成开发环境@angular/cli IE8之后才有debugger工具 2009,nodejs发布,前端Big Bang 1.1 基于NodeJS的工具链 打包工具 grunt 对js代码做合并 ...
 - 论文解读(SCGC))《Simple Contrastive Graph Clustering》
			
论文信息 论文标题:Simple Contrastive Graph Clustering论文作者:Yue Liu, Xihong Yang, Sihang Zhou, Xinwang Liu论文来源 ...
 - 个人冲刺(二)——体温上报app(一阶段)
			
任务:完成了WenData类的编写,同时完成了SecondActivity.java SecondActivity.java package com.example.helloworld; impor ...
 - django请求生命周期流程与路由层相关知识
			
目录 请求生命周期流程图 路由层之路由匹配 无名有名分组 反向解析 无名有名分组反向解析 路由分发 名称空间 请求生命周期流程图 django请求生命周期流程图 路由层之路由匹配 我们都知道,路由层是 ...
 - 基于SqlSugar的开发框架循序渐进介绍(5)-- 在服务层使用接口注入方式实现IOC控制反转
			
在前面随笔,我们介绍过这个基于SqlSugar的开发框架,我们区分Interface.Modal.Service三个目录来放置不同的内容,其中Modal是SqlSugar的映射实体,Interface ...
 - Spring Authorization Server 0.3.0 发布,官方文档正式上线
			
基于OAuth2.1的授权服务器Spring Authorization Server 0.3.0今天正式发布,在本次更新中有几大亮点. 文档正式上线 Spring Authorization Ser ...
 - T1创世纪(原创)
			
创世纪 这是我的第一道原创题 题解: 这道题的核心算法是:加维度的最短路+贪心 状态:\(dis[i][j][t][a]\)表示在 \(t\) 时,到达 \((i,j)\) ,当前共造\(a\)只&q ...