使用三个指针域,分别是父节点指针,左孩子节点指针,右孩子节点指针,便于找到节点的父亲。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define COUNT 100
#pragma warning(disable:4996)
/*
二叉树的链式结构存储实现
*/
//二叉树结构体
typedef struct _BiTree
{
char nData;//存放数据
struct _BiTree* pParent;//父节点
struct _BiTree* pLeft;//左孩子节点
struct _BiTree* pRight;//有孩子节点
}BiTree,*PBiTree;
//保存二叉树指针的栈结构
typedef struct _AddrStack
{
PBiTree pStack[COUNT];//栈
int nTop;//栈顶指针
}AddrStack,*PAddrStack;
/*为二叉树申请内存空间
*/
PBiTree BiTreeMalloc()
{
//申请内存
PBiTree pThis = (PBiTree)malloc(sizeof(BiTree));
if (pThis == NULL)
{
puts("内存申请失败");
system("pause");
exit(0);
}
memset(pT