zoukankan      html  css  js  c++  java
  • 关于二叉树指针和引用的体会(转载)

    举例:创建二叉树,参数用(BiTNode **root)和(BiTNode &root)的区别

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

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

    [cpp] view plaincopy
     
    1. void CreateBiTree(BiTNode **root)    //二级指针作为函数参数    
    2. {    
    3.     char ch; //要插入的数据    
    4.     scanf(" %c", &ch);    
    5.     //cin>>ch;    
    6.     if(ch=='#')    
    7.         *root = NULL;    
    8.     else    
    9.     {    
    10.         *root = (BiTNode *)malloc(sizeof(BiTNode));    
    11.         (*root)->data = ch;    
    12.         printf("请输入%c的左孩子:",ch);    
    13.         CreateBiTree(&((*root)->lchild));    
    14.         printf("请输入%c的右孩子:",ch);    
    15.         CreateBiTree(&((*root)->rchild));    
    16.     }    
    17. }    


    2)引用类型作为参数

    [cpp] view plaincopy
     
      1. void CreateBiTree(BiTree &root)  
      2. {  
      3.     char ch;  
      4.     cin>>ch;  
      5.     if(ch=='#')  
      6.         root=NULL;  
      7.     else  
      8.     {  
      9.         root=(BiTNode*)malloc(sizeof(BiTNode));  
      10.         root->data=ch;  
      11.         cout<<"左孩子:"<<endl;  
      12.         CreateBiTree(root->lchild);  
      13.         cout<<"右孩子:"<<endl;  
      14.         CreateBiTree(root->rchild);  
      15.     }  
      16. }  
  • 相关阅读:
    shell学习(11)- seq
    bash快捷键光标移动到行首行尾等
    shell学习(10)- if的使用
    Python 执行 Shell 命令
    查看 jar 包加载顺序
    Linux 中的 sudoers
    Ubuntu 开机启动程序
    指定 Docker 和 K8S 的命令以及用户
    Spark on K8S(Standalone)
    Spark on K8S (Kubernetes Native)
  • 原文地址:https://www.cnblogs.com/huangxingkezhan/p/3353520.html
Copyright © 2011-2022 走看看