二叉树链表存储

#include<Windows.h>
#include <iostream>
#include <queue>
using namespace std;

typedef struct BinTNode
{
int data;
BinTNode* lBinTNode;
BinTNode* rBinTNode;

}BinTNode,* BinTree;//BinTNode是定义的类型,而*BinTree是定义指向此结构体的指针

int initArray[]={6,4,10,5,0,0,0,8,0,0,12,16,0,0,14,0,0};
int i=0;
void CreateBinTree(BinTree* T){ //T是指向指针的指针
int ch=initArray[i++];
if(ch==0) T=NULL;
else{

*T=(BinTree)malloc(sizeof(BinTNode));//malloc的作用是开辟sizeof(BinTNode)大小的空间,并把空间地址返回去
(*T)->data=ch;
CreateBinTree(&(*T)->lBinTNode);
CreateBinTree(&(*T)->rBinTNode);
}
}
void main(){
BinTree t;
t=NULL;
CreateBinTree(&t);
Sleep(1000000);
}

使用c语言编写,学会使用指向指针的指针。对于结构体,typedef struct A{} *B;其中B是指向结构体的指针,在结构体中,这个指针不可以作为结构体的成员变量,因为还没有定义完成struct类型,指向的类型不明确

原文地址:https://www.cnblogs.com/sdnyzhl/p/2803285.html