int main(int argc, char *argv[]) 
{
	
	BiTree T,H;
	printf("请创建一棵二叉树(如:'ABDH##I##EJ###CF##G##')\n");
	CreateBinaryTree(&T);
	
	printf("\n二叉树的深度为:%d,结点数目为:%d\n",BinaryDepth(T),NodeCount(T));
	
	printf("\n先序遍历的结果是:\n");
	PreOrderTraverse(T);
	
	printf("\n中序遍历的结果是:\n");
	InOrderTraverse(T);
	
	printf("\n后序遍历的结果是:\n");
	PostOrderTraverse(T);
	
	printf("\n对二叉树进行中序线索化\n");
	InOrderThreading(&H,T);
	printf("\n中序遍历线索二叉树的结果是:\n");
	InOrderTraverseThreadTree(H);
	
	printf("\n摧毁一棵二叉树\n");
	DestoryBinaryTree(&T);
	printf("\n二叉树的深度为:%d,结点数目为:%d\n",BinaryDepth(T),NodeCount(T));
	return 0;
}
Beispiel #2
0
int main(int argc, char **argv)
{
	BiThrTree H, T;
	printf("请按先序输入二叉树(如:ab三个空格表示a为根结点,b为左子树的二叉树)\n");
	Create_BiThrTree(&T);
	InOrderThreading(&H, T);
	printf("中序遍历(输出)二叉线索树:\n");
	InOrderTraverse_Thr(H, vi);
	printf("\n");
	DestroyBiThrTree(&H);
	return OK;
}
int main()
{
	BiThrTree H,T;
	printf("请按前序输入二叉树(如:'ABDH##I##EJ###CF##G##')\n");
 	CreateBiThrTree(&T); /* 按前序产生二叉树 */
	InOrderThreading(&H,T); /* 中序遍历,并中序线索化二叉树 */
	printf("中序遍历(输出)二叉线索树:\n");
	InOrderTraverse_Thr(H); /* 中序遍历(输出)二叉线索树 */
	printf("\n");
	
	return 0;
}
Beispiel #4
0
int main() {
	BiThrTree Thrt, T, p, q;
	CreateBiThrTree(T);
	InOrderThreading(Thrt, T);
	// InOrderTraverse_Thr(Thrt);
	p = Thrt->lchild;
	q = InPostPre(Thrt, p);
	if(q != NULL) {		
		printf("%c\n", q->data);
	}else {
		printf("该节点为后序的第一个节点,没有前驱\n");
	}//注意这里不可能发生q==NULL,因为本程序在生成ThreadTree时,将其做成双向的,头结点也是尾节点,都有前驱
}
Beispiel #5
0
void main()
{
  BiThrTree H,T;
#if CHAR
  printf("请按先序输入二叉树(如:ab三个空格表示a为根结点,b为左子树的二叉树)\n");
#else
  printf("请按先序输入二叉树(如:1 2 0 0 0表示1为根结点,2为左子树的二叉树)\n");
#endif
  CreateBiThrTree(&T); /* 按先序产生二叉树 */
  InOrderThreading(&H,T); /* 中序遍历,并中序线索化二叉树 */
  printf("中序遍历(输出)二叉线索树:\n");
  InOrderTraverse_Thr(H,vi); /* 中序遍历(输出)二叉线索树 */
  printf("\n");
}
Beispiel #6
0
int main() {
    BiThrTree H, T;
#if CHAR
    printf("请按先序输入二叉树(如:ab三个空格表示a为根结点,b为左子树的二叉树)\n");
#else
    printf("请按先序输入二叉树(如:1 2 0 0 0表示1为根结点,2为左子树的二叉树)\n");
#endif
    CreateBiThrTree(&T); 
    InOrderThreading(&H, T); 
    printf("中序遍历(输出)二叉线索树:\n");
    InOrderTraverse_Thr(H, vi); 
    printf("\n");
    return 0;
}
Beispiel #7
0
int main()
{
	int level = 1;
	BiTree p, T = NULL;

	CreateBiTree(&T);

	InOrderThreading(&p, T);
//	PreOrderTraverse(T, level);

	InOrderTraverse(p);

	system("pause");
	return 0;
}