括号表示法打印二叉树JAVA_括号表示法字符串构造二叉树

本文介绍了如何使用JAVA来构建和打印括号表示法的二叉树。通过定义二叉树节点结构,创建二叉树的函数`Create`和输出二叉树的函数`Display`,实现了从括号表示法的字符串到二叉树的转换,并能打印整个树结构。示例代码中展示了如何处理输入字符串`A(B(D(,G)),C(E,F))`来构建和显示相应的二叉树。" 133253479,1173281,UG NX C++二次开发:按体对象质心排序,"['UG NX开发', 'C++编程', 'NXOpen API', '体对象操作', '排序算法']
摘要由CSDN通过智能技术生成

#includeusing namespace std;

#define MaxSize 100

struct BTnode { //节点的数据类型

char data;

BTnode *lnode, *rnode;

};

void Create(BTnode* &root, char *str) { //创建二叉树

BTnode *St[MaxSize], *p = root = NULL;

int k = 0, j = 0, top = -1;

char ch = str[j];

while (ch != '\0') {

switch (ch)

{

case '(': St[++top] = p; k = 1; break;

case ')': top--; break;

case ',': k = 2; break;

default:

p = new BTnode;

p->data = ch;

p->lnode = p->rnode = NULL;

if (root == NULL) root = p;

else k == 1 ? St[top]->lnode = p : St[top]->rnode = p;

}

ch = str[++j];

}

}

BTnode* Findnode(BTnode *root, char ch) { //查找某个节点

if (root == NULL) return NULL;

if (root->data == ch) return root;

BTnode *p = Findnode(root->lnode, ch);

return p != NULL ? p : Findnode(root->rnode, ch);

}

void Display(BTnode *root) { //输出整棵二叉树

if (root != NULL) printf("%c", root->data);

if (root->lnode != NULL || root->rnode != NULL) {

printf("(");

if (root->lnode != NULL) Display(root->lnode);

if (root->rnode != NULL) {

printf(",");

Display(root->rnode);

}

printf(")");

}

}

int main() {

BTnode *root = NULL;

char* str = "A(B(D(,G)),C(E,F))";

Create(root, str);

Display(root);

printf("\n");

return 0;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值