四叉树的构建-简单的范围模拟分裂

2015-07-05

#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
double dian[4];//用来保存x,y的最大值和最小值
int gs;//限定一个节点中所能存放最大点数
bool j;//用来标记是否进行了分裂
node *f[4];//四叉树的四个节点
void csh()//进行初始化
{
gs=100;
j=1;
}
void chu()//用来输出范围
{
for(int i=0;i<4;i++)
cout<<dian[i]<<" ";
cout<<endl;
}

};
node *creat(double minx,double maxx,double miny,double maxy,int geshu)//用来构建四叉树
{

node *t;
t=(node *)malloc(sizeof(node));
t->csh();
t->dian[0]=minx;
t->dian[1]=maxx;
t->dian[2]=miny;
t->dian[3]=maxy;
t->chu();
if(geshu>t->gs)//判断这个范围内的点是否达到所限制的个数,超过则进行分裂。
{
t->j=0;
t->f[0]=creat(t->dian[0],(minx+maxx)/2,(miny+maxy)/2,t->dian[3],geshu/2);
t->f[1]=creat((minx+maxx)/2,t->dian[1],(miny+maxy)/2,t->dian[3],geshu/2);
t->f[2]=creat(t->dian[0],(minx+maxx)/2,t->dian[2],(miny+maxy)/2,geshu/2);
t->f[3]=creat((minx+maxx)/2,t->dian[1],t->dian[2],(miny+maxy)/2,geshu/2);
}
return t;
}
int main()
{
node *h;
double x1,x2,y1,y2;
int ge;
cin>>x1>>x2>>y1>>y2>>ge;//输入一个范围,以及这个范围内的点的个数。
h=creat(x1,x2,y1,y2,ge);
}

时间: 2024-12-17 00:57:18

四叉树的构建-简单的范围模拟分裂的相关文章

Linux服务--iptables之nat转发和构建简单的DMZ防火墙

iptables之nat转发和构建简单的DMZ防火墙 一.NAT iptables 中的nat表: nat:Network Address Translation:NAT不仅完美地解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机. nat有三种实现方式:SNAT,DNAT和端口多路复用OverLoad 在了解Nat工作原理之前先了解一下私网IP和公网IP.私网IP地址是指局域网内部网络或主机的IP地址,公网地址是指在因特尔网上全球唯一的IP地址. 私有

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介 熟悉将用于 Apache Tuscany SCA for C++ 的 API.您将通过本文了解该 API 的主要组成部分,以便快速入门. 查看本系列更多内容 | 0 评论: Ed Slattery ([email protected]), 软件工程师, IBM UK Pete Robbins ([email protected]), 软件工程师, IBM UK Andrew Borley ([email pro

Ant——使用Ant构建简单Java项目(二)

博客<Ant--使用Ant构建简单Java项目(一)>演示了使用Ant工具构建简单的Java项目,接着这个例子来进一步学习Ant: 上面例子执行build.xml文件脚本比较繁杂,能不能简化执行的脚本呢?答案是肯定的,可以将build.xml文件中的脚本改成下面的脚本: <?xml version="1.0" encoding="UTF-8"?> <project name="test" default="

Ant——使用Ant构建简单Java项目(三)

博客<Ant--使用Ant构建简单Java项目(二)>我们简化了执行Test类中main方法需要执行的命令,本博客来介绍一下如何使build.xml文件和其中使用property标签定义的属性分离: 1.在test文件夹中新建名为build.properties的文件,文件中以"key=value"的形式输入原来在build.xml文件中定义的属性及其属性值如下: src=src lib=build/lib dest=build/classes np_jar=build/l

Ant—使用Ant构建简单Java项目(三)

博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属性分离: 1.在test目录中新建名为build.properties的文件,文件里以"key=value"的形式输入原来在build.xml文件里定义的属性及其属性值例如以下: src=src lib=build/lib dest=build/classes np_jar=build/l

三、使用Maven构建简单的java项目

前边,我刚搭建了Maven环境,还有给大家推荐了学习资源,这个小节,我们来就来,,简单的玩玩maven. 1.所需工具: 1.Eclipse     2.apache-maven-3.3.9   3.JDK  1.7 2.命令构建简单的java项目 (1)运行cmd 切换盘符到你指定的文件夹下,如图 (2)键入以下命令: mvn archetype:generate -DgroupId=com.software.wg -DartifactId=FirstMvn -DarchetypeArtifa

构建简单的Maven工程,使用测试驱动的方式开发项目

构建简单的Maven工程很简单,这里写这篇随笔的原因是希望自己能记住几个小点. 一.安装Maven 1.下载maven:https://maven.apache.org/download.cgi 2.解压压缩包到指定路径,如E:/Java/maven.得到文件夹apache-maven-3.3.9. 3.以第二步得到的目录E:/Java/maven/apache-maven-3.3.9作为Maven的根目录,配置Maven的环境变量.注意因为maven是Java语言开发的所以需要依赖JDK,所以

Redis构建简单的主从复制

Redis构建简单的主从复制 原理: 当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来.后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上. 配置前提,关闭防火墙或允许redis端口通行 Centos7 IP:1

Maven实战(二)构建简单Maven项目

1.创建一个简单的项目 利用这个命令: mvn archetype:generate -DgroupId=cn.edu.app -DartifactId=simple -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-quickstart (这里稍微解释一下,archetype:generate  前面archetype说我们用了maven的archetype插件,后面的generate指的是该插件的一个目标,后面groupId,artifa