[数据结构] 二叉树的操作实现

      假设自上而下按层次,自左至右输入每个结点的一个三元组(N,P, L/R)。其中N 为本结点的元素,P为其父结点,L 指示N为P 的左孩子,R指示N 为P的右孩子。试写一个建立二元树的左右链表示算法,并实现先根、中根、后根以及层序遍历算法。

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

typedef int Elementtype;

struct node
{
	struct node *lchild;
	struct node *rchild;
	Elementtype data;
};

typedef node *BTREE;

BTREE CreateTree();
int IsEmpty(BTREE root);
void Visit(int n);
void InOrder(BTREE root); 
void PostOrder(BTREE root);
void PreOrder(BTREE root);

int main()
{
	struct node *root;
	BTREE tree[MAX];
	root = CreateTree();
	
	printf("中根遍历:\n");
	InOrder(root);
	printf("\n");
	
	printf("先根遍历:\n");
	PreOrder(root);
	printf("\n");
	
	printf("后根遍历:\n");
	PostOrder(root);
	printf("\n");
	
	return 0;
} 

BTREE CreateTree()
{
	BTREE root;
	B
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值