//二叉树的三叉链表存储
//杨鑫
#include <stdio.h>
#include <stdlib.h>
#define max(a, b) a > b ? a : b
#define ClearBiTree DestroyBiTree
typedef char TElemType;
// 二叉树的三叉链表存储表示
typedef struct BiTPNode
{
TElemType data;
struct BiTPNode *parent,*lchild,*rchild; // 双亲、左右孩子指针
}BiTPNode,*BiPTree;
typedef BiPTree QElemType; // 设队列元素为二叉树的指针类型
typedef struct QNode
{
QElemType data; //数据域
struct QNode *next; //指针域
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,//队头指针,指针域指向队头元素
rear; //队尾指针,指向队尾元素
}LinkQueue;
TElemType Nil=' '; // 字符型以空格符为空
// 构造空二叉树T
int InitBiTree(BiPTree *T)
{
*T=NULL;
return 1;
}
// 销毁二叉树T
void DestroyBiTree(BiPTree *T)
{
if(*T) // 非空树
{
if((*T)->lchild) // 有左孩子
DestroyBiTree(&(*T)->lchild); // 销毁左孩子子树
if((*T)->rchild) // 有右孩子
DestroyBiTree(&(*T)->rchild); // 销毁右孩子子树
free(*T); // 释放根结点
*T=NULL; // 空指针赋0
}
}
// 按先序次序输入二叉树中结点的值(可为字符
数据结构之---C语言实现二叉树的三叉链表存储表示
最新推荐文章于 2024-02-02 22:26:17 发布