根据二叉树的中序遍序列和后续遍历序列还原一颗二叉树

这篇博客探讨了如何使用C++来解决数据结构作业中的一个问题,即根据给定的二叉树中序遍历和后序遍历序列还原二叉树的结构。内容涉及二叉树的存储、遍历算法以及重建过程。
摘要由CSDN通过智能技术生成

 数据结构作业

采用C++完成

/**题目要求
已知二叉树的中序遍历序列 char ino[]以及后序遍历序列char pst[],请用算法生成该二叉树(用二叉链表的形式存储)
*/
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR  0
#define STACK_INIT_SIZE 100 // 存储空间初始分配量
#define STACKINCREMENT 10 // 存储空间分配增量

typedef int  Status;
//typedef BiTree  BiTree;
typedef char ElemType;

typedef char  ElemType;
typedef struct BiTNode{
  ElemType data;
  struct BiTNode *lchild,*rchild;//左右孩子指针
} BiTNode,*BiTree;

struct SqStack
{
     BiTree *base; // 在栈构造之前和销毁之后,base的值为NULL
     BiTree *top; // 栈顶指针
     int stacksize; // 当前已分配的存储空间,以元素为单位
}; // 顺序栈








Status InitStack(SqStack &S)       
{      
// 构造一个空栈S,该栈预定义大小为STACK_INIT_SIZE
	S.base = (BiTree *)malloc(STACK_INIT_SIZE * sizeof(BiTree));
	if(!S.base)
		return 0;
	S.top =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值