⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree sort.cpp

📁 用二叉树算法实现的排序
💻 CPP
字号:
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
typedef struct T{//定义树节点
struct T *l;
struct T *r;
long value;
}TREE;

TREE *I(TREE *head,long q)//插入节点
{
TREE *p, *parent;
bool i;
TREE *newnode=new TREE;
p=NULL;
newnode->value=q;
newnode->l=NULL;
newnode->r=NULL;
if(!head)	return newnode;
p=head;
i=true;
while(p){
parent=p;
if(p->value>q)
	{
	p=p->l;
	i=true;
	}
else
	{
	p=p->r;
	i=false;
	}
}
if(i)
parent->l=newnode;
else
parent->r=newnode;
return head;
}

TREE *CREATE(long a[], long n)//建立有序二叉树
{
TREE *head=NULL;
long i;
for(i=1;i<=n;i++)
head=I(head,a[i]);
return head;
}
void OUT(TREE *p){
	if(!p)
	return;
    OUT(p->l);
	printf("%d ",p->value);
	OUT(p->r);
}

void main()
{
clock_t t1,t2;
double time;
long i,n,a[100000];
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i]=rand();
t1=clock();
CREATE(a,n);
t2=clock();
time=(double)(t2-t1)/CLK_TCK;
OUT(CREATE(a,n));
printf("%f",time);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -