首页 > 其他分享 >树4-树的确定与#号创建

树4-树的确定与#号创建

时间:2024-04-20 09:33:08浏览次数:20  
标签:node ch 创建 确定 CreateBinaryTree BinaryNode rChild root

树4-树的确定与#号创建


只有中序遍历不能确定一个树


确定树的方法

中序遍历确定左右区域,而先序和后序确定实际位置


二叉树的#创建

二叉树结点

typedef struct BinaryNode{
    char ch;
    struct BinaryNode *lChild;
    struct BinaryNode *rChild;
} BinaryNode;

二叉树遍历

void Recursion(BinaryNode *root){
    if(root==NULL) return;
    cout << root->ch;
    Recursion(root->lChild);
    Recursion(root->rChild);
}

创建树

BinaryNode* CreateBinaryTree(){
    //清空缓冲区
    fflush(stdin);
    char ch;
    cout << "输入ch:" ;
    cin >> ch;
    //当ch为空时, 退出创建
    BinaryNode *node;
    // BinaryNode  *lChild, *rChild;

    if(ch=='#'){ //#表示当前结点为NULL
        node = NULL; 
    }else{
        // lChild = CreateBinaryTree();
        // rChild = CreateBinaryTree();
        node = (BinaryNode*)malloc(sizeof(BinaryNode));
        node->ch = ch;
        node->lChild = CreateBinaryTree();
        node->rChild = CreateBinaryTree();
    }

    return node;
}

测试

int main(void){
    //创建树
    BinaryNode *root = CreateBinaryTree();
    //递归遍历
    Recursion(root);
    cout << endl;
    
    // ABCD##P###QH###

    system("pause");
    return 0;
}

标签:node,ch,创建,确定,CreateBinaryTree,BinaryNode,rChild,root
From: https://www.cnblogs.com/HIK4RU44/p/18147211

相关文章

  • 利用预测不确定性提高安卓恶意软件检测模型性能
    文献简介文献标题:MalCertainEnhancingDeepNeuralNetworkBasedAndroidMalwareDetectionbyTacklingPredictionUncertainty引用:Yang,Liminetal."BODMAS:AnOpenDatasetforLearningbasedTemporalAnalysisofPEMalware",IEEESymposiumonSecurity......
  • IDEA中创建一个Servlet项目的详细步骤
    以下是通过IDEA创建一个简单的JavaServlet示例,支持通过HTTP在浏览器中访问的详细步骤。1.创建项目打开IDEA,点击NEW创建一个新项目生成如下的目录结构设置Maven的路径,File—>settings—>输入mvn。 2.引入依赖我们所使用的Servlet是Tomcat的api,不是JDK,也就是说Servlet......
  • 如何使用 abp 创建 module 并应用单独的数据库迁移
    创建abp项目官方文档已经提供了非常详细的新建项目向导。参考:https://docs.abp.io/en/abp/latest/Getting-Started-Create-Solution?UI=Blazor&DB=EF&Tiered=YesCLI命令参考:https://docs.abp.io/en/abp/latest/CLI我们使用abpCLI创建一个新项目。我使用Blazor来开发前......
  • 7-02.创建游戏数据存储结构框架
    安装Newtonsoft-jsoncom.unity.nuget.newtonsoft-json创建GameSaveData创建ISaveable创建SaveLoadManager修改ISaveable创建DataGUID修改ISaveable给Player绑定GUID运行,然后停止,然后再运行,这时GUID就一直存在了修改Player脚本给所有Ma......
  • 6-01. Timeline 创建
    创建IntroCanvas注意,把IntroCanvas的SortOrder改为10,确保可以完全遮盖其它物品添加PanelColor改成11102E新建NewGameCutscene把文件放到GameData/Timeline为了方便操作,可以把右上方改成秒声音切割的办法在最后的时候添加关键帧,包括坐标、大小......
  • 6-02. 创建 Timeline 的对话
    修改NewGameCutscene选择AddActiveTrack创建新场景创建DialogBehaviour创建DialogClip创建DialogTrack修改DialogBehaviour编辑DialogClip首先添加DialogTrack,然后再AddDialogClip可以把HasToPause勾选一下再添加一个DialogClip修改Dia......
  • Winform项目中纯代码创建WCF服务
    接口:[ServiceContract(CallbackContract=typeof(IViewCallback),SessionMode=SessionMode.Required)]publicinterfaceIViewService{[OperationContract]voidServiceTest();}类:[ServiceBehavior(InstanceContextMode=......
  • 【Revit二次开发】创建规则多边形的屋顶
    出处https://spiderinnet.typepad.com/blog/2013/05/revit-net-creations-api-create-regular-polygonal-roof.html翻译在Revit.NETAPI2013,尽管NewWall方法已移动到Wall类本身,但屋顶生成方法尚未移动。它仍在文件中。创建实例。不管怎样,我们找到了它的位置,并能够建造一些屋......
  • k8s快速创建MongoDB
    1.创建MongoDBpvc文件如果不需要持久存储可以忽略kind:PersistentVolumeClaimapiVersion:v1metadata:name:mongodb-datanamespace:t1-zdblspec:storageClassName:nfs-client#这里使用的存储类accessModes:-ReadWriteManyresources:reques......
  • 5-02. 创建 AudioMixer 实现音乐音效的控制和切换
    创建AudioMixer修改AudioMixer可以增加Snapshots可以增加Groups创建一个只有背景音乐的快照静音的快照暴露音量选中Music,然后右键Music然后就能在ExposedParameters看到暴露出来的变量可以改名为MusicVolume用同样的方法暴露出Ambient并修改名字......