码迷,mamicode.com
首页 > 编程语言 > 详细

二叉树排序

时间:2015-06-02 18:06:20      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:c-c++   数据结构   排序算法   

二叉树排序

// 二叉树排序.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

struct data{
    int num;
    struct data* lbaby, *rbaby;
}*root, *tree, *leaf;

void find(int,struct data*);
void output(struct data*);

void main()
{
    int data[10] = {75,23,98,44,57,12,29,64,38,82};
    int i;
    printf("\n<<Binary tree sort>>\n");
    printf("\nNumber:");
    for (i = 0; i < 10; i++)
        printf("%d ",data[i]);
    puts("");
    for (i = 0; i < 60; i++) printf("-");
    root = (struct data*)malloc(sizeof(struct data));
    root->num = data[0];        //建立树根
    root->lbaby = NULL;
    root->rbaby = NULL;
    printf("\nAccess:");
    output(root);
    leaf = (struct data*)malloc(sizeof(struct data));
    for (i = 1; i < 10; i++)    //建立树枝
    {
        leaf->num = data[i];
        leaf->lbaby = NULL;
        leaf->rbaby = NULL;
        find(leaf->num,root);
        if (leaf->num>tree->num)//如果比父节点大,则放右子树
            tree->rbaby = leaf;
        else                    //否则放在左子树
            tree->lbaby = leaf;
        printf("\nAccess:");
        output(root);
        leaf = (struct data*)malloc(sizeof(struct data));
    }
    puts("");
    for (i = 0; i < 60; i++) printf("-");
    printf("\nSorting:");
    output(root);
    printf("\n");
    system("pause");
}
/*寻找新节点存放的位置*/
void find(int input, struct data* papa)
{
    if ((input>papa->num) && (papa->rbaby != NULL))
        find(input, papa->rbaby);
    else if ((input < papa->num) && (papa->lbaby != NULL))
        find(input, papa->lbaby);
    else
        tree = papa;
}
/*输出数据*/
void output(struct data* node)
{
    if (node != NULL)
    {
        output(node->lbaby);
        printf("%d ",node->num);
        output(node->rbaby);
    }
}

技术分享

二叉树排序

标签:c-c++   数据结构   排序算法   

原文地址:http://blog.csdn.net/u011233535/article/details/46330221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!