圆子丷 发表于 2021-5-12 10:12:31

关于结构体指针定义指针变量

#include <stdio.h>
#include <stdlib.h>

typedef char ElemType;

typedef struct BiTNode
{
    char data;
    struct BiTNode* lchild, * rchild;
} BiTNode, * BiTree;

// 创建一棵二叉树,约定用户遵照前序遍历的方式输入数据
void CreateBiTree(BiTree* T)
{
    char c;

    scanf("%c", &c);
    if (' ' == c)
    {
      *T = NULL;
    }
    else
    {
      *T = (BiTNode*)malloc(sizeof(BiTNode));
      (*T)->data = c;
      CreateBiTree(&(*T)->lchild);
      CreateBiTree(&(*T)->rchild);
    }
}

// 访问二叉树结点的具体操作,你想干嘛?!
void visit(char c, int level)
{
    printf("%c 位于第 %d 层\n", c, level);
}

// 前序遍历二叉树
void PreOrderTraverse(BiTree T, int level)
{
    if (T)
    {
      visit(T->data, level);
      PreOrderTraverse(T->lchild, level + 1);
      PreOrderTraverse(T->rchild, level + 1);
    }
}

int main()
{
    int level = 1;
    BiTree T = NULL;

    CreateBiTree(&T);
    PreOrderTraverse(T, level);

    return 0;
}其中函数 CreateBiTree(BiTree* T),指针BiTree定义了指针T把我搞蒙了,大佬救救我

井利 发表于 2021-5-18 18:53:14

就是二级指针啊

吹一样的风 发表于 2021-5-24 19:56:20

就等价于 CreateBiTree(BiTNode** T)
页: [1]
查看完整版本: 关于结构体指针定义指针变量