第六章(6).三叉链表存储树

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

#define TRUE 1  
#define FALSE 0    
#define OK 1
#define ERROR 0
#define OVERFLOW -2     //Include by "math.h"!

typedef int Status ;

//------------------------Link Tree--------------------------//

#define CHAR 0 
#if CHAR       
 typedef char TElemType ;
 #define N ' '     //Set different means according to different case!
#else
 typedef int TElemType ;
 #define N 0    
#endif

typedef struct BiPTNode
{
 TElemType data ;
 struct BiPTNode *lchild , *rchild , *parent ;
} BiPTNode , *BiPTree ;

//-------------------------Link Queue---------------------------//

typedef BiPTree QElemType ;

typedef struct QNode               //链结点
{
 QElemType data ;
 struct QNode *next ;
} QNode , *QueuePtr ;

typedef struct                   
{
 QueuePtr front ;               //队头指针   队头出元素
 QueuePtr rear ;                //队尾指针   队尾进元素
} LinkQueue ;

Status InitQueue( LinkQueue *Q ) ;
Status EnQueue( LinkQueue *Q , QElemType e ) ;
Status DeQueue( LinkQueue *Q , QElemType *e ) ;
Status QueueEmpty( LinkQueue Q ) ;


 

 

 

//三叉链表的引入主要是为了方便简化二叉链表中的部分插入删除操作!(涉及栈和队列部分的操作).其余的函数大体相同!
//------------------Basic Fuction------------------------//

Status InitBiPTree( BiPTree *T )
{
 *T = NULL ;
 return OK ;
}

Status DestroyBiPTree( BiPTree *T )
{
 if( *T )
 {
  if( ( *T )->lchild )
   DestroyBiPTree( &( *T )->lchild ) ;
  if( ( *T )->rchild )
   DestroyBiPTree( &( *T )->rchild ) ;

  fre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值