Create generic tree : Generic Tree « Generics « VB.Net Tutorial

Home
VB.Net Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statements
5.Date Time
6.Class Module
7.Development
8.Collections
9.Generics
10.Attributes
11.Event
12.LINQ
13.Stream File
14.GUI
15.GUI Applications
16.Windows Presentation Foundation
17.2D Graphics
18.I18N Internationlization
19.Reflection
20.Regular Expressions
21.Security
22.Socket Network
23.Thread
24.Windows
25.XML
26.Database ADO.net
27.Design Patterns
VB.Net
VB.Net by API
VB.Net Tutorial » Generics » Generic Tree 
9.6.1.Create generic tree
Imports System.Collections.Generic
Imports System.ComponentModel
public class Test
   public Shared Sub Main
        Dim family_tree As New Tree(Of MyNode)
        Dim root As TreeNode(Of MyNode= family_tree.MakeRoot(New MyNode("Me"))

        Dim child1 As TreeNode(Of MyNode= root.AddChild(New MyNode("Child 1"))
        Dim child2 As TreeNode(Of MyNode= root.AddChild(New MyNode("Child 2"))

        child1.AddChild(New MyNode("Grandchild 1"))
        child1.AddChild(New MyNode("Grandchild 2"))
        child2.AddChild(New MyNode("Grandchild 3"))
        child2.AddChild(New MyNode("Grandchild 4"))

        Console.WriteLine(family_tree.ToString())

   End Sub
End class


Public Class MyNode
    Public Name As String
    Public Sub New(ByVal new_name As String)
        Name = new_name
    End Sub
    Public Overrides Function ToString() As String
        Return Name
    End Function
End Class

Public Class Tree(Of data_type)
    Private m_Root As TreeNode(Of data_type= Nothing
    Public Property Root() As TreeNode(Of data_type)
        Get
            Return m_Root
        End Get
        Set(ByVal value As TreeNode(Of data_type))
            m_Root = value
        End Set
    End Property

    Public Sub Clear()
        m_Root = Nothing
    End Sub

    Public Function MakeRoot(ByVal node_item As data_typeAs TreeNode(Of data_type)
        m_Root = New TreeNode(Of data_type)(node_item)
        Return m_Root
    End Function

    Public Overrides Function ToString() As String
        Return m_Root.ToString()
    End Function
End Class

Public Class TreeNode(Of data_type)
    Public NodeObject As data_type
    Public Children As New List(Of TreeNode(Of data_type))

    Public Sub New(ByVal node_object As data_type)
        NodeObject = node_object
    End Sub

    Public Function AddChild(ByVal node_item As data_typeAs TreeNode(Of data_type)
        Dim child_node As New TreeNode(Of data_type)(node_item)
        Children.Add(child_node)
        Return child_node
    End Function

    Public Shadows Function ToString(Optional ByVal indent As Integer = 0As String
        Dim txt As String
        txt = New String(" "c, indent& NodeObject.ToString & vbCrLf

        ' Add the children's text.
        For Each child As TreeNode(Of data_typeIn Children
            txt &= child.ToString(indent + 2)
        Next child

        Return txt
    End Function
End Class
Me
  Child 1
    Grandchild 1
    Grandchild 2
  Child 2
    Grandchild 3
    Grandchild 4
9.6.Generic Tree
9.6.1.Create generic tree
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.