zoukankan      html  css  js  c++  java
  • 数据结构中树的创建和三种遍历方式的应用

    自己对这一块的知识掌握的不是很好,所以就整理了一下,下面是代码;


    #include<stdio.h>
    #include<malloc.h>
    
    typedef struct tree_node
    {
    	char data;
    	struct tree_node *lchild,*rchild;
    }BT_node;
    
    BT_node *tree;
    
    
    //树的创建
    BT_node *creat_tree(BT_node *tree)
    {
    	char c;
    	c = getchar();
    
    	if(c == '*')
    	{
    		tree = NULL;
    	}
    	else
    	{
    		tree = (struct tree_node *)malloc(sizeof(struct tree_node));
    		tree->data = c;
    		tree->lchild = creat_tree(tree->lchild);
    		tree->rchild = creat_tree(tree->rchild);
    	}
    	return(tree);
    }
    
    //遍历根节点
    void visit_node(BT_node *tree)
    {
    	printf(" ");
    	putchar(tree->data);
    	printf("\t");
    }
    
    
    //前序遍历
    void pre_tree(BT_node *tree)
    {
    	if(!tree)
    	{
    		return;
    	}
    	else
    	{
    		visit_node(tree);
    		pre_tree(tree->lchild);
    		pre_tree(tree->rchild);
    	}
    }
    
    //中序遍历
    void mid_tree(BT_node *tree)
    {
    	if(!tree)
    	{
    		return;
    	}
    	else
    	{
    		mid_tree(tree->lchild);
    		visit_node(tree);
    		mid_tree(tree->rchild);
    	}
    }
    
    //后序遍历
    void after_tree(BT_node *tree)
    {
    	if(!tree)
    	{
    		return;
    	}
    	else
    	{	
    		after_tree(tree->lchild);
    		after_tree(tree->rchild);
    		visit_node(tree);
    	}
    }
    
    
    int main()
    {
    	printf("请输入树节点...\n");
    	tree = creat_tree(tree);
    
    	if(tree)
    	{
    		printf("前序遍历\n");
    		pre_tree(tree);
    		printf("\n");
    
    		printf("中序遍历\n");
    		mid_tree(tree);
    		printf("\n");
    
    		printf("后序遍历\n");
    		after_tree(tree);
    		printf("\n");
    	}
    	printf("\n");
    	return 0;
    }


  • 相关阅读:
    Windows如何使用jstack跟踪异常代码
    内存溢出和内存泄漏的区别
    Tomcat 服务器性能优化
    Spotlight on oracle
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解(转VIII)
    linux下使用yum安装mysql
    MySQL监控系统MySQL MTOP的搭建(转VIII)
    SQL中Group By的使用
    视图
    触发器
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3076664.html
Copyright © 2011-2022 走看看