概述
1.建立一棵二叉查找树
2.按中序遍历的要求显示树中每一个结点的值
3.按要求去查找某一个结点
using namespace std;
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#define Maxsize 10
/*
括号表示法
'('表示一颗左子树的开始
')'表示一颗子树的结束
','表示一颗右子树的开始
单个字符:节点的值
构造方法:
先构造根节点,再构造左节点,继续构造右节点
构造的过程中需要使用栈来存储根节点
处理方法:
使用一个变量ch去扫描括号表示法中的数据 :
若ch = '(',则将前面的创建的节点当做父节点压入栈中,并且将k = 1,并且开始处理左节点;
若ch = ')',则表示左右孩子都处理完毕,退栈
若ch = ',',则表示开始处理右孩子,将k = 2;
若遇到k = 1,则将创建的节点作为左节点
若遇到k = 2, 则将创建的节点作为右节点
*/
struct Sqtree
{
char data;
struct Sqtree *lchild, *rchild; //指向左树和右树的指针
};
// 创建一颗二叉树
void CreateTree(Sqtree *& b, char * str)
{
Sqtree * s[Maxsize], *p = NULL;
int top = -1, k = 0, j = 0;
char ch;
b = NULL;
ch = str[j];
while (ch != '