首页 > 其他分享 >二叉树的建立

二叉树的建立

时间:2023-05-05 18:32:34浏览次数:29  
标签:case break ch 建立 top BTNode 二叉树 节点


二叉树的创建

typedef struct node
 {
   ElemType data;
   struct node *lchild;//指向左孩子的节点 
   struct node *rchild;//指向右孩子的节点 
 }BTNode;#include "btree.h"
 void CreateBTNode(BTNode *&b,char *str)
 {
   BTNode *St[MaxSize],*p;
   int top=-1,k,j=0;
   char ch;
   b=NULL;
   ch=str[j];
   while(ch !='\0')
   {
     switch(ch)
     {
       case '(':top++;St[top]=p;k=1;break;//开始处理左孩子节点 
       case ')':top--;break;
       case ',':k=2;break;//开始处理右孩子节点 
       default:
               p=(BTNode *)malloc(sizeof(BTNode));
               p->data=ch;p->lchild=NULL;p->rchild=NULL;
               if(b==NULL)//若尚未建立根节点 
               {
                 b=p;     //*p为二叉树的根节点      
               }
               else      //已建立二叉树的根节点 
               {
                 switch(k)
                 {
                   case 1:St[top]->lchild=p;break;
                   case 2:St[top]->rchild=p;break;         
                 }    
               }          
     }
     j++;
     ch=str[j];         
   }     
 }

标签:case,break,ch,建立,top,BTNode,二叉树,节点
From: https://blog.51cto.com/u_16099425/6247413

相关文章

  • 代码大全-如何建立一个高质量的子程序
    不积硅步,无以至千里;不积小流,无以成江海。大型的项目是由一个个小模块构建而成。每一个小模块里面又包含着许多子程序。如果每一个子程序都能做到高质量,那么整个项目代码的质量必然很高。......
  • MySQL查出所有的主外键关系、级联关系,并记录起来,删除所有的外键关系,根据记录重新建立
    查出所有的主外键关系并记录起来可以通过查询information_schema数据库中的REFERENTIAL_CONSTRAINTS表来获取所有的主外键关系。以下是查询语句:`SELECTK.CONSTRAINT_NAME,--外键约束名K.TABLE_NAME,--子表外键所在表名K.COLUMN_NAME,--外键所在列名......
  • 杂项 两个人建立内部钉钉群
    目录杂项两个人建立内部钉钉群杂项两个人建立内部钉钉群钉钉企业内部两个人建群的时候,点击内部群或者保密群。都会直接跳转到对方聊天框。因为钉钉建群最少需要3个人,所以我们可以先拉第三个不相干的人,成群之后,再把他踢掉就可以了。......
  • OushuDB 小课堂丨如何在数据科学领域建立职业生涯
    更多内容请关注OushuDB小课堂考虑从事数据科学职业?好消息:美国劳工统计局估计,数据科学家的就业率将增长36%2021年至2031年期间,预计届时将创造40,500个以上的就业岗位。随着全球产生的数据量快速增长,对数据科学专业人员的需求也在增长,他们可以帮助组织分析所有这些数据、改......
  • 第五章 树与二叉树
    树的概念根节点,分支节点,叶子节点树是递归定义的数据结构两个节点之间的路径,只能从上往下.(有向边)结点的度:有几个孩子(分支)树的度:各结点的度的最大值有序树和无序树树和森林树的度和M叉树二叉树的定义和基本概念二叉树的五种状态特殊状态的二叉......
  • 建立链表
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstruct_link{intval;structval*next;}Link;Link*Build(){intval;Link*head=NULL,*tail=NULL,*cur=NULL;//头......
  • 索引适合建立情况和不适合建索引情况
    哪些情况适合建立表索引?主键自动建立唯一索引频繁作为查询条件的字段应该创建索引查询中与其它表关联的字段,外键关系建立索引单键/组合索引的选择问题,who?(在高并发下倾向创建组合索引)查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度查询中统计或者分组字段......
  • k8s 使用 RBAC 鉴权 建立不同用户使用k8s。只有指定命名空间的权限
    k8s使用RBAC鉴权https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/#创建sa账号kubectlcreatesasa-test-20230408#使用sa账号创建pod资源[root@master01sa]#catpod.yamlapiVersion:v1kind:Podmetadata:name:sa-test-pod-20230408......
  • 2023-05-03:给你一棵 二叉树 的根节点 root ,树中有 n 个节点 每个节点都可以被分配一个
    2023-05-03:给你一棵二叉树的根节点root,树中有n个节点每个节点都可以被分配一个从1到n且互不相同的值另给你一个长度为m的数组queries你必须在树上执行m个独立的查询,其中第i个查询你需要执行以下操作:从树中移除以queries[i]的值作为根节点的子树题目所用测试......
  • 2023-05-03:给你一棵 二叉树 的根节点 root ,树中有 n 个节点 每个节点都可以被分配一个
    2023-05-03:给你一棵二叉树的根节点root,树中有n个节点每个节点都可以被分配一个从1到n且互不相同的值另给你一个长度为m的数组queries你必须在树上执行m个独立的查询,其中第i个查询你需要执行以下操作:从树中移除以queries[i]的值作为根节点的子树题目所......