コード例 #1
0
ファイル: main.cpp プロジェクト: cswanghan/code
void LRDTree(CBTType *treeNode,void(*TreeNodeData)(CBTType *p))  //后序遍历
{
	if(treeNode)
	{
		LRDTree(treeNode->left,TreeNodeData);
		LRDTree(treeNode->right,TreeNodeData);
		TreeNodeData(treeNode);
	}
}
コード例 #2
0
ファイル: tree.c プロジェクト: FanChael/binary_tree
int main(int argc, char ** argv)
{
    treeNode * root = createTree();
    if (!root)
        return -1;
    printf("\n------------------\n");
    LDRTree(root);
    printf("\n------------------\n");
    DLRTree(root);
    printf("\n------------------\n");
    LRDTree(root);

    printf("\n叶子结点个数 %d\n", leafnum(root));
    printf("\n二叉树层高 %d\n", getMaxLevel(root));

    showTree(root);

    return 0;
}
コード例 #3
0
ファイル: main.cpp プロジェクト: cswanghan/code
void main()
{
	CBTType *root=NULL;
	char  menusel;
	void (*TreeNodeData1)(CBTType *p);
	TreeNodeData1=TreeNodeData;

	root = InitTree();
	do{
		printf("请选择菜单添加二叉树的节点\n");
		printf("0.退出\t");
		printf("1.添加二叉树的节点\n");
		menusel = getch();
		switch(menusel)
		{
		case '1':
			AddTreeNode(root);
			break;
		case '0':
			break;
		default:
			;
		}
	}while(menusel != '0');

	do{
		printf("请选择菜单遍历二叉树,输入0表示退出:\n");
		printf("1.先序遍历DLR\t");
		printf("2.中序遍历LDR\n");
		printf("3.后序遍历LRD\t");
		printf("4.按层遍历\n");


		menusel = getch();
		switch(menusel)
		{
		case '0':
			break;
		case '1':
			printf("\n 先序遍历DLR的结果:");
			DLRTree(root,TreeNodeData1);
			printf("\n");
			break;
		case '2':
			printf("\n中序遍历LDR的结果:");
			LDRTree(root,TreeNodeData1);
			printf("\n");
			break;
		case '3':
			printf("\n 后序遍历LRD的结果:");
			LRDTree(root,TreeNodeData1);
			printf("\n");
			break;
		case '4':
			printf("\n 按层遍历的结果:");
			LevelTree(root,TreeNodeData1);
			printf("\n");
			break;
		default:
			;
		}
	
	}while(menusel != '0');

	printf("\n 二叉树深度为:%d \n",TreeDepth(root));

	ClearTree(root);
	root = NULL;


}