1. 二叉树的基本运算
1.1 创建二叉树
str - A(B(D(,G)), C(E,F))
code:
#include<iostream>
using namespace std;
#define MAXSIZE 100
typedef struct BTNode {
char val;
BTNode* lchild = NULL;
BTNode* rchild = NULL;
}BTNode;
BTNode* creatBTNode(char* str) {
BTNode* root = NULL;
BTNode* p = NULL;
int i = 0;
int k = 1;
BTNode* St[MAXSIZE];
int top = -1;
while (str[i] != '\0') {
char ch = str[i];
i++;
switch (ch) {
case '(':
top++;
St[top] = p;
k = 1;
break;
case ',':
k = 2;
break;
case ')':
top--;
break;
default:
BTNode* s = (BTNode*)malloc(sizeof(BTNode));
s->val = ch;
p = s;
if (root == NULL) root = s