• 二叉树


    #include "stdio.h"
    #include "stdlib.h"
    
    #define OVERFLOW -1
    #define ERROR -1
    #define OK 1
    
    typedef char Elemtype;
    typedef int Status;
    typedef struct BitNode
    {
    	Elemtype data;
    	struct BitNode *lchild,*rchild;
    }bitnode ,*Bitree;
    
    
    
    Status creatbitree(Bitree &t)
    {
    	char ch;
    	scanf("%c",&ch);
    	if(ch==' ') t=NULL;
    	else
    	{
    		if(!(t=(bitnode *)malloc(sizeof(Bitree))))  exit(OVERFLOW);
    		t->data=ch;
    		creatbitree(t->lchild);
    		creatbitree(t->rchild);
    	}
    	return OK;
    }
    
    Status printelemt(Elemtype e)
    {
    	printf("%c",e);
    	return OK;
    }
    
    Status preordertraverse(Bitree t,Status (*visit)(Elemtype e))
    {
    	if(t)
    	{
    		if(visit(t->data))
    			if(preordertraverse(t->lchild,visit))
    					if(preordertraverse(t->rchild,visit))  return OK;
    		return ERROR;
    	}
    	else 
    		return OK;
    }
    
    Status inordertraverse(Bitree t,Status (*visit)(Elemtype e))
    {
    	if(t)
    	{
    	    if(inordertraverse(t->lchild,visit))
    		    if(visit(t->data))
    				if(inordertraverse(t->rchild,visit))  return OK;
    		return ERROR;
    	}
    	else 
    		return OK;
    }
    
    Status postordertraverse(Bitree t,Status (*visit)(Elemtype e))
    {
    	if(t)
    	{
    	    if(postordertraverse(t->lchild,visit))
    			if(postordertraverse(t->rchild,visit))  	
    					if(visit(t->data)) return OK;
    		return ERROR;
    	}
    	else 
    		return OK;
    }
    
    main()
    {
    	Bitree t;
    	creatbitree(t);
    	preordertraverse(t,printelemt);
    	printf("
    ");
    
    	inordertraverse(t,printelemt);
    	printf("
    ");
    
    	postordertraverse(t,printelemt);
    	printf("
    ");
    
    }
    
    
    
    
    
    
    
    
  • 相关阅读:
    关于面试的有意义问题
    Web测试方法总结
    alwayson05-安装sql server
    alwayson03-安装故障转移
    always on
    alwayson02-各个节点加入域
    alwayson01-搭建域环境
    undo log和redo log
    mysql事务隔离级别
    Ajax
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3444065.html
Copyright © 2020-2023  润新知