二叉树的删除操作 PTA

这是一个关于二叉搜索树(BST)的删除操作的程序实现,包括非递归插入和删除节点的方法。代码还包含了层序遍历二叉树的函数,用于展示删除操作后的树结构。程序使用了队列辅助进行层序遍历,并提供了读取数据、删除指定节点和打印树的功能。
摘要由CSDN通过智能技术生成

分析:首先按照题目要求删除节点(书上的二叉树删除操作的规则与这个略有不同,所以需要自己重新写)

#include<stdio.h>
#include<stdlib.h>
#define max 105//看要求
#define FALSE 0
#define TRUE  1
#define overflow -1
#define error -1
#define OK    1
typedef struct TNode{
  int data;
  struct TNode * lchild,*rchild;
}TNode,* BiTree;

//层序遍历用到的队列的操作

typedef struct{
  BiTree * base;//存放指针比较方便
  int front;
  int rear;
}SqQueue;

void InitQueue(SqQueue * Q){
  (*Q).base=(BiTree *)malloc(max*sizeof(BiTree));
  if(!(*Q).base)  exit(overflow);
  (*Q).front=(*Q).rear=0;
}
int  Enqueue(SqQueue * Q,BiTree e){
     if( ((*Q).rear+1) % max == (*Q).front) return error;
     (*Q).base[(*Q).rear]=e;
     (*Q).rear=((*Q).rear+1) % max;
     return OK;
}
int DeQueue(SqQueue * Q,BiTree e){
     if((*Q).front==(*Q).rear) r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值