指针参数的传递??
#include<iostream.h>
#include<malloc.h>
typedef char ElemType;
typedef struct node{
ElemType data;
struct node *lchild;
struct node *rchild;
}BTNode;
void CreateBTNode(BTNode *b,char *str){ //创建二叉树
BTNode *St[100],*p=NULL;
int top=-1,k,j=0;
char ch;
b=NULL;
ch=str[j];
while(ch!='\0')
{
switch(ch)
{
case'(':top++;St[top]=p;k=1;break; //此时为左结点
case')':top--;break;
case',':k=2;break; //此时为右结点
default:p=(BTNode *)malloc(sizeof(BTNode));
p->data=ch;p->lchild=p->rchild=NULL;
if(b==NULL) //此时p指向根节点
b=p;
else
{
switch(k)
{
case 1:St[top]->lchild=p;break;
case 2:St[top]->rchild=p;break;
}
}
}
j++;
ch=str[j];
}
}
void main()
{
BTNode *b=NULL;
CreateBTNode(b,"A(B(D(H,I),E(J,K)),C(F(L),G))");//参数‘b’无法传递???、
cout<<b->data<<endl;
}
这是一个二叉树创建程序
CreateBTNode(BTNode *b,char *str){ }是正确的
参数b无法传递,为什么会这样,请各位教导?