1、实验内容:
中序线索化上述二叉树并找出根结点的前驱和后继。
2、实现代码:
#include <iostream>
using namespace std;
typedef int Status;
#define OK 1
#define MAXSIZE 200
//定义二叉树结构
typedef struct Node
{
char data;
struct Node *lchild, *rchild; //定义左右
int ltag, rtag;
}*BiTree, BiTNode;
Status CreateBiTree(BiTree &T)
{
BiTree S[MAXSIZE]; //顺序栈,便于回溯
BiTNode *p = NULL;
int top = 0, k = 0; //top表示一维数组的下标;
char ch;
cin >> ch;
T = NULL;
while (ch != '#')
{
switch (ch)
{
case '(':S[++top] = p; k = 1; break; //top++为入栈,k=1为左子树;
case ')':top--;