树的表示法

二叉链法
三叉链法

双清链表示法

#include<iostream>
#include<string.h>
//二叉链表示法
typedef struct BiTNode
{
	int data;
	BiTNode *lchild, *rchild;
};
typedef struct BiTNode* Bitree;


//三叉链表示法
typedef struct TriTNode
{
	int data;
	TriTNode *lchild, *rchild;
	TriTNode *parent;
};
typedef struct TriTNode * TriTree;

//双亲链表示法
typedef struct BPTNode
{
	int data;
	int parentPosition;//指向双亲的指针 //数组下标
	char LRTag;//左右孩子标识域
};
typedef struct BPTree
{
	BPTNode nodes[100];//因为结点之间是分数的,需要吧结点存储到数组中
	int num_node;//结点数目
	int root;//根节点的位置//注意此域存储的是父亲结点在数组的下标
};
//用这个数据结构能表达出一棵树。。。

void main()
{
	BiTNode t1, t2, t3, t4, t5;
	t1.data = 1;
	t2.data = 2;
	t3.data = 3;
	t4.data = 4;
	t5.data = 5;
	t1.lchild = &t2;
	t1.rchild = &t3;
	t2.lchild = &t4;
	t3.lchild = &t5;

	BiTNode *p1, *p2, *p3, *p4, *p5;
	p1 = (BiTNode*)malloc(sizeof(BiTNode));
	p2 = (BiTNode*)malloc(sizeof(BiTNode));
	p3 = (BiTNode*)malloc(sizeof(BiTNode));
	p4 = (BiTNode*)malloc(sizeof(BiTNode));
	p5 = (BiTNode*)malloc(sizeof(BiTNode));
	p1->data = 1;
	p2->data = 2;
	p3->data = 3;
	p4->data = 4;
	p5->data = 5;
	p1->lchild =p2;
	p1->rchild = p3;
	p2->lchild = p4;
	p3->lchild = p5;
}

猜你喜欢

转载自blog.csdn.net/weixin_36455036/article/details/80569576