指针参数的传递??
#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无法传递,为什么会这样,请各位教导?
#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无法传递,为什么会这样,请各位教导?
...全文
相关推荐
《C和指针》读书笔记.pdf
《C和指针》读书笔记.pdf
c语言指针变量作为函数参数传递
本文主要讲了c语言指针变量作为函数参数传递,下面一起来学习一下
C/C++中多维数组指针作为函数参数传递程序
在C++中,通过多维数据的指针作为函数参数传递源程序
函数参数的传递问题(一级指针和二级指针)
深入阐述一级指针和二级指针的概念,解决函数传递时值传递和引用传递带来的困惑
C++指针作为函数的参数进行传递时需要注意的一些问题
只有在被调函数中,对指针进行引用操作,才可以达到不需要返回值,就对指针指向的变量做出相应的变化。 下面分析这样两个例子; 要求:定义并初始化两个字符串变量,并执行输出操作;然后调用函数使这两个变量的值交换,并且要求被调函数的传值通过传递指针来实现。程序1.1 代码如下:#include#includeusing namespace std;int main(){ string str1=”I love China!”,str2=”I love JiNan!”; void Exchange(string *p1,string *p2); cout<



