[リソース構造]ツリー1-JAVA
13870 ワード
前に学んだリンクリストは、ハッシュも難しいが、木だけはもっと実現しにくいものの一つのようだ.😭 でも木を渡ると大関を渡るからがんばろう👊
木の数が膨大すぎるので、1と2に分けて整理しておきます.😘
バイナリツリー
:Branchは最大2つで、検索に非常に役立ちます.public class hash{
public Node root=null;
public static void main(String[] args) {
hash mytree=new hash();
mytree.Insert(3);
mytree.Insert(5);
mytree.Insert(1);
mytree.Insert(4);
System.out.println(mytree.root.left.data);
System.out.println(mytree.root.right.data);
System.out.println(mytree.root.right.left.data);
}
public class Node{
Integer data;
Node left;
Node right;
Node(Integer data){
this.data=data;
}
}
/*트리에 노드추가*/
public boolean Insert(Integer data) {
//1. 아무 데이터도 없는 경우
if (this.root == null) {
this.root = new Node(data);
return true;
}
//2. 데이터가 있는 경우
else {
Node CurrentNode = this.root;
while(true){
//왼쪽으로 이동
if(data<CurrentNode.data){
if(CurrentNode.left==null){
CurrentNode.left=new Node(data);
break;
}
else
CurrentNode=CurrentNode.left;
}
//오른쪽으로 이동
else{
if(CurrentNode.right==null){
CurrentNode.right=new Node(data);
break;
}
else
CurrentNode=CurrentNode.right;
}
}
return true;
}
}
public Integer BinarySearch(Integer data){
if(root==null)
return -1;
else{
Node CurrentNode=this.root;
while(CurrentNode!=null) {
//left로 가는 경우
if(data<CurrentNode.data){
if(CurrentNode.left.data==data)
return CurrentNode.left.data;
else
CurrentNode=CurrentNode.left;
}
else{
if(CurrentNode.right.data==data)
return CurrentNode.right.data;
else
CurrentNode=CurrentNode.right;
}
}
return -1;
}
}
}
Reference
この問題について([リソース構造]ツリー1-JAVA), 我々は、より多くの情報をここで見つけました
https://velog.io/@mingsomm/자료구조-트리-JAVA
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class hash{
public Node root=null;
public static void main(String[] args) {
hash mytree=new hash();
mytree.Insert(3);
mytree.Insert(5);
mytree.Insert(1);
mytree.Insert(4);
System.out.println(mytree.root.left.data);
System.out.println(mytree.root.right.data);
System.out.println(mytree.root.right.left.data);
}
public class Node{
Integer data;
Node left;
Node right;
Node(Integer data){
this.data=data;
}
}
/*트리에 노드추가*/
public boolean Insert(Integer data) {
//1. 아무 데이터도 없는 경우
if (this.root == null) {
this.root = new Node(data);
return true;
}
//2. 데이터가 있는 경우
else {
Node CurrentNode = this.root;
while(true){
//왼쪽으로 이동
if(data<CurrentNode.data){
if(CurrentNode.left==null){
CurrentNode.left=new Node(data);
break;
}
else
CurrentNode=CurrentNode.left;
}
//오른쪽으로 이동
else{
if(CurrentNode.right==null){
CurrentNode.right=new Node(data);
break;
}
else
CurrentNode=CurrentNode.right;
}
}
return true;
}
}
public Integer BinarySearch(Integer data){
if(root==null)
return -1;
else{
Node CurrentNode=this.root;
while(CurrentNode!=null) {
//left로 가는 경우
if(data<CurrentNode.data){
if(CurrentNode.left.data==data)
return CurrentNode.left.data;
else
CurrentNode=CurrentNode.left;
}
else{
if(CurrentNode.right.data==data)
return CurrentNode.right.data;
else
CurrentNode=CurrentNode.right;
}
}
return -1;
}
}
}
Reference
この問題について([リソース構造]ツリー1-JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@mingsomm/자료구조-트리-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol