今天第一次学习排序二叉树
2013-10-19 13:49
169 查看
首先,是写出一个递归的树生成以及结点插入二叉树的递归算法。
#include<stdio.h>
struct tree
{
int data;
tree *lchild;
tree *rchild;
};
void insert(tree *t,int key)
{
if(t==NULL)
{
t=new tree;
t->lchild=t->rchild=NULL;
t->data=key;
return;
}
if(key<t->lchild->data)
insert(t->lchild,key);
else
insert(t->rchild,key);
}
void creattree(tree *t,int a[],int n)
{
int i;
for(i=0;i<n;i++)
insert(t,a[i]);
}
补充一下,当这颗树建立以后,用中序遍历一下这颗树,输出的是一个递增序列。
虽然名为二叉排序树,其实排序效率比不上堆排序,可当作一个树表,便于数据的查询,所以我们称之为二叉查找树也许更为合适。
#include<stdio.h>
struct tree
{
int data;
tree *lchild;
tree *rchild;
};
void insert(tree *t,int key)
{
if(t==NULL)
{
t=new tree;
t->lchild=t->rchild=NULL;
t->data=key;
return;
}
if(key<t->lchild->data)
insert(t->lchild,key);
else
insert(t->rchild,key);
}
void creattree(tree *t,int a[],int n)
{
int i;
for(i=0;i<n;i++)
insert(t,a[i]);
}
补充一下,当这颗树建立以后,用中序遍历一下这颗树,输出的是一个递增序列。
虽然名为二叉排序树,其实排序效率比不上堆排序,可当作一个树表,便于数据的查询,所以我们称之为二叉查找树也许更为合适。
相关文章推荐
- 今天上了第一次驾校,学习右飞
- 端口占用问题,今天学习的时候又出现了这个问题,找了度娘,特此记录以下。第一次写博客,希望自己能坚持下来。大家共同进步
- 今天第一次开始写博客,作为新入门的程序员记录自己的学习工作中的问题。
- 我今天第一次来这里学习
- 从今天开始学习Silverlight 2 和WPF
- 今天第一次注册blog
- 今天学习:3.3线性表的链式存储
- 从今天开始学习iOS开发(iOS 7版)--实现一款App-教程:添加数据
- 凡事总有个第一次,今天开始记录自己的程序人生。
- 今天是第一天所以写两个,这个是总结以前学到的一些知识看看自己以后的学习方向
- 今天学习的时候偶然发现了一个有趣的题目,可以用编程实现。
- 今天一天学习的MYSQL语句,立此存照
- 今天学习C# Itext大一点收获!
- 今天是第一次来这里,就像报道一样,点名而已。
- 今天第一次注册
- 今天初步学习了一下Git版本控制,总结一下,后面加下用Git下载android源代码
- 从今天起开始涉足java的学习,记录学习的点滴
- 黑马程序员-------关于今天的一个程序学习心得
- java学习 第一次笔记
- python爬虫学习第十六天——今天有点晚,请假一天