在实现二叉树的链式存储的过程中,我遇到了一些问题,感到对递归的理解还不够深入。另外,代码中有一处必须使用全局变量做数组索引,还在研究其中的原因,代码已完成,现在贴在博客中供参考
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int TElemType;
typedef char String[MAXSIZE];
typedef struct BiTreeNode{
TElemType data;
struct BiTreeNode * lchild;
struct BiTreeNode * rchild;
}BiTreeNode;
typedef struct BiTreeNode * BiTree;
String str;
int i=1;/*此处必须要用全局变量做索引,暂时不知为何*/
/*对字符串进行赋值*/
Status AssignString(String S,char * chars){
int i=0;
if(strlen(chars)>MAXSIZE)
return ERROR;
else{
S[0]=strlen(chars);
for(i=1;i<=S[0];i++)
S[i]=*(chars+i-1);
}
return OK;
}
Status Visit(TElemType c){
printf("%c",c);
return OK;
}
/*初始化二叉树*/
Status InitBiTree(BiTree *T){
(*T)=NULL;