回 帖 发 新 帖 刷新版面

主题:[讨论]关于二叉链表的问题

大家好,我正在学习数据结构,看到二叉链表的时候有个问题,想请各位大虾帮忙解答,在此先谢谢大家啦![em2][em2]
下面这段代码是二叉树(二叉链表)的建立,为什么函数的形参要用“指针的指针”呢??我把它改成“指针变量”就不对了,我已经试过了。

typedef int datatype;
typedef struct node
{ datatype data;
  struct node *lchild;
  struct node *rchild;
}BINTNODE,*BINTREE;

void createbintree(BINTREE *t)
{ int a;
  scanf("%d",&a);
  if(a==0) *t=NULL;
  else
  { *t=(BINTNODE *)malloc(sizeof(BINTNODE));
    (*t)->data=a;
     createbintree(&(*t)->lchild);
     createbintree(&(*t)->rchild);
   }
}

回复列表 (共2个回复)

沙发

typedef struct node

    datatype data;
    struct node *lchild;
    struct node *rchild;
}BINTNODE,*BINTREE;

void createbintree(BINTREE &t)//使用引用变量

    int a;
    scanf("%d",&a);
    if(a == 0)
        t = NULL;
    else
    {
        t = (BINTNODE *)malloc(sizeof(BINTNODE));
        t->data = a;
        createbintree(t->lchild);
        createbintree(t->rchild);
   }
}

这样就没问题了

板凳


xiexie

我来回复

您尚未登录,请登录后再回复。点此登录或注册