然而得到了报错:在其中已经有了<stdlib.h>头文件,但是malloc之后依然显示"引发了异常: 写入访问权限冲突。A 是 nullptr。"
#include<stdlib.h>
#include<malloc.h>
#include<stdio.h>
//已经包含<stdlib.h>以及<iostream>
using namespace std;
typedef char ElemType;
typedef struct BiTNode
{
ElemType data;
struct BiTNode* lchild, * rchild;
}TREE, * LPTREE;
//创建二叉树 前序遍历
void CreateBiTree(LPTREE* A)
{
ElemType c;
cout << "请输入字符:" << endl;
cin >> c;
if (c == ' ')
{
*A = NULL;
}
else
{
*A = (TREE*)malloc(sizeof(TREE));
if (A == NULL)
{
return;
}
(*A)->data = c;
CreateBiTree(&(*A)->lchild);
CreateBiTree(&(*A)->rchild);
}
}
void print(ElemType data, int level)
{
cout << data << endl;
cout << level << endl;
}
void preOrder(LPTREE root, int level)
{
if (root)
{
print(root->data, level);
preOrder(root->lchild, level + 1);
preOrder(root->rchild, level + 1);
}
}
int main()
{
LPTREE* A = NULL;
CreateBiTree(A);
cout << "先序遍历" << endl;
preOrder(*A, 1);
system("pause");
return 0;
}
应该是被包含在另外两个之一里了吧,把malloc删掉就行吧