数据结构----数

顺序存储:

双亲表示法:用一组连续的存储空间存储树的结点,同时在每个结点中,用一个变量存储该结点的双亲结点在数组中的位置。

**加粗样式**
typedef char ElemType;
typedef struct TNode{
	ElemType data;//结点数据
	int parent;该结点双亲在数组中的下标
	}TNode;

#define Maxsize 100
typedef struct{
TNode nodes[Maxsize];//结点数组
int n;//结点数量
}Tree;
链式存储
孩子表示法:把每个结点的孩子排列起来存储成一个单链表。所以n个结点就有n个链表;如果是叶子结点,那么这个结点的孩子单链表就是空的。
然后n个单链表的头指针又存储在一个顺序表(数组中)。

typedef char ElemType;
typedef struct CNode{
	int child;
	struct CNode *next;
	}CNode *Child;
	typedef struct
	{
		Elemtype data;
		Child firstchild;
		}TNode;

孩子兄弟表示法:
设置两个指针,分别指向该节点的第一个孩子结点,和该节点的兄弟结点

typedef char ElemType;
typedef struct CSNode{
	ElemType data;
	struct CSNode *firstchild,*rightilb;
	}CSNode;
	
上一篇:二分搜索树


下一篇:VBA读写XML文件