二叉树排序
来源:互联网 发布:淘宝退货用空包判刑吗 编辑:程序博客网 时间:2024/06/06 12:45
二叉树排序
// 二叉树排序.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); }}
0 0
- 二叉树,排序二叉树
- 排序算法-二叉树排序
- 树-排序二叉树
- 二叉树排序
- 排序二叉树
- 使用二叉树排序
- 排序二叉树 原理
- 二叉树排序法
- 二叉树排序
- java-二叉树排序
- 二叉排序(查找)树
- 排序二叉树
- 二叉树排序
- 二叉树排序
- 二叉树排序算法
- 二叉排序(查找)树
- 二叉树排序原理
- 二叉树排序
- 黑马程序员_IO流
- 微信自定义开发的一些问题的梳理
- 重拾牙慧
- css背景图片的设置
- 解决ScrollView嵌套ListView和GridView冲突的方法
- 二叉树排序
- 删除全部binlog不影响数据库运行,类似Oracle的archivelog
- 为什么用Spring来管理Hibernate?
- 同步工具类(闭锁,信号量,栅栏,FutureTask)
- Ubuntu下查看CPU、内存和硬盘详细信息的几个命令
- 在oracle中,使用sqlldr将文件中的数据导入到数据库
- TCP/IP------协议头部
- HDOJ 献给杭电五十周年校庆的礼物
- 一些oracle知识