数据结构上机实验---含空指针信息的先根序列建树(也就是扩展二叉树)

24 篇文章 107 订阅 ¥19.90 ¥99.00
本文介绍了如何根据包含空指针信息的先根序列来构建扩展二叉树。首先解释了扩展二叉树的概念,然后详细阐述了利用先根序列建立树的过程,包括解析序列、确定节点位置和连接节点等步骤。
摘要由CSDN通过智能技术生成

```cpp
#include<bits/stdc++.h>
using namespace std;
 
typedef struct Bnode{
	char data;
	Bnode *lch,*rch;
}Bnode,*Btree;
 
void CreatBtree(Btree &T)
{
	char ch;
	cin>>ch;
	if(ch=='#') T=NULL;
	else{
		T=(Btree)malloc(sizeof(Bnode));
		if(!T) exit(OVERFLOW);
		T->data=ch;
		CreatBtree(T->lch);
		CreatBtree(T->rch);
	}
}
 
void PreOrderTraverse(Btree T)
{
	if(T==NULL) return ;
	cout<<T->data<<' ';//可改为其他操作 
	PreOrderTraverse(T->lch);
	PreOrderTraverse(T->rch);
}
 
void InOrderTraverse(Btree T)
{
	if(T==NULL) return ;
	InOrderTraverse(T->lch);
	cout<<T->data<<' ';
	InOrderTraverse(T->rch);
} 
 
void PostOrderTraverse(Btree T)
{
	if(T==NULL) return ;
	PostOrderTraverse(T->lch);
	PostOrderTraverse(T->rch);
	cout<<T->data<<' ';
}
 
int main()//以已知扩展前序序列为例 
{
	cout<<"请输入扩展二叉树的扩展前序序列"<<endl;
	Btree root;
	CreatBtree(root);
	cout<<endl;
	cout<<"树的前序为:"<<endl; 
	PreOrderTraverse(root);
	cout<<endl;
	cout<<"树的中序为:"<<endl;
	InOrderTraverse(root);
	cout<<endl;
	cout<<"树的后序为:"<<endl;
	PostOrderTraverse(root);
	cout<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值