关于二叉树指针和引用的体会

来源:互联网 发布:两个矩阵的协方差 编辑:程序博客网 时间:2024/06/05 04:09
举例:创建二叉树,参数用(BiTNode **root)和(BiTNode &root)的区别

分析:前面的是传递的二重指针,后面的是传递指针的引用,效果是一样的,就是修改一级指针的值,让这个指针指向新的内存空间。。

1)二级指针作为函数参数

void CreateBiTree(BiTNode **root)    //二级指针作为函数参数  {      char ch; //要插入的数据      scanf("\n%c", &ch);      //cin>>ch;      if(ch=='#')          *root = NULL;      else      {          *root = (BiTNode *)malloc(sizeof(BiTNode));          (*root)->data = ch;          printf("请输入%c的左孩子:",ch);          CreateBiTree(&((*root)->lchild));          printf("请输入%c的右孩子:",ch);          CreateBiTree(&((*root)->rchild));      }  }  

2)引用类型作为参数

void CreateBiTree(BiTree &root){char ch;cin>>ch;if(ch=='#')root=NULL;else{root=(BiTNode*)malloc(sizeof(BiTNode));root->data=ch;cout<<"左孩子:"<<endl;CreateBiTree(root->lchild);cout<<"右孩子:"<<endl;CreateBiTree(root->rchild);}}


原创粉丝点击