1 //
2 // Copyright (c) 2010-2018 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 namespace Antmicro.Renode.Utilities.Collections
9 {
10     public class BidirectionalTreeNode<T> : TreeBase<BidirectionalTreeNode<T>, T>
11     {
BidirectionalTreeNode(T value)12         public BidirectionalTreeNode(T value) : base(value)
13         {
14             // parent will be null - like for the root node
15         }
16 
BidirectionalTreeNode(T value, BidirectionalTreeNode<T> parent)17         private BidirectionalTreeNode(T value, BidirectionalTreeNode<T> parent) : base(value)
18         {
19             Parent = parent;
20         }
21 
AddChild(T value)22         public override BidirectionalTreeNode<T> AddChild(T value)
23         {
24             var node = new BidirectionalTreeNode<T>(value, this);
25             ChildrenList.Add(node);
26             return node;
27         }
28 
29         public BidirectionalTreeNode<T> Parent { get; private set; }
30     }
31 }
32 
33