Loading [MathJax]/extensions/MathMenu.js

javaでやるデータ構造 パート~木構造

2019年12月25日水曜日

データ構造 プログラミング

t f B! P L

1. 初めに

これからjavaのオブジェクト指向を使って木構造を再現していきたいと思います!
なぜ、よりによって木から始めるのかは気にしないでください(笑)
データ構造について整理したいなということもあって、木から始めます!

2. 木とは?

これを浮かべた方はほぼほぼ正解です!

ただ、この場合は根っこについてイメージしてもらえると理解しやすいです。
上の図を頭に入れてコードに入っていきましょう!


3. コードの解説

まずは、Nodeは二番目のイラストを見ながら解説していきます。
dataとNodeのleftとrightの変数を定義します。
なぜ、leftとrightがNodeの型なのかは左の根からさらに根ができているのをイメージしてもらえるとわかりやすいです。

  1. class Node{
  2. int data;
  3. Node left;
  4. Node right;
  5. public Node(int value){
  6. this.data = value;
  7. }
  8. public void insertRight(int value){
  9. this.right = new Node(value);
  10. }
  11. public void insertLeft(int value){
  12. this.left = new Node(value);
  13. }
  14. }
次に関数を解説していきたいと思います。
public Nodeはオブジェクト指向のコンストラクタを利用しました。
また、後日オブジェクト指向についてまとめを書こうと思います。
insertRightとinsertLeftもNodeをつくるため、コンストラクタを使いました。

4. 全体のコード

  1. class Node{
  2. int data;
  3. Node left;
  4. Node right;
  5. public Node(int value){
  6. this.data = value;
  7. }
  8. public void insertRight(int value){
  9. this.right = new Node(value);
  10. }
  11. public void insertLeft(int value){
  12. this.left = new Node(value);
  13. }
  14. }
  15.  
  16. public class Main {
  17. public static void main(String[] args){
  18. Node root = new Node(1);
  19. root.insertLeft(2);
  20. root.insertRight(3);
  21. System.out.printf("The elements of tree are %d %d %d",root.data,root.left.data,root.right.data);
  22. }
  23. }
  24.  

5. 最後に

今まで学習帳らしいことしてなかったので、これから勉強系の記事も書いていこうと思いますのでどうかよろしくお願いします。
twitterのフォローよろしくお願いします。

自己紹介

自分の写真
このブログは自分が学んだことを自分の言葉で言い換えて説明していきます。 皆さんに分かりやすいように説明しますのでよろしくお願いしますm(__)m

アーカイブ

注目の投稿

高校数学で使う記号のlatexコマンド

QooQ