Separeted Generic Nodes (Directed and Undirected)

This commit is contained in:
Luke Else 2022-04-02 21:22:20 +01:00
parent e5fa390608
commit 78df73e66d
6 changed files with 20 additions and 5 deletions

View File

@ -2,7 +2,7 @@
namespace C_.Datastructures.DoublyLinkedList
{
internal class DoublyLinkedListNode<T> : Node<T, DoublyLinkedListNode<T>>
internal class DoublyLinkedListNode<T> : UndirectedNode<T, DoublyLinkedListNode<T>>
{//Inherits from Node
public DoublyLinkedListNode<T>? Prev { get; set; } = default;

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace C_.Datastructures.Generic
{
internal class DirectedNode<T, NodeType>
{
public T? Value { get; set; } = default;
public NodeType? Left { get; set; } = default;
public NodeType? Right { get; set; } = default;
}
}

View File

@ -1,6 +1,6 @@
namespace C_.Datastructures.Generic
{
internal class Node<T, NodeType>
internal class UndirectedNode<T, NodeType>
{//Generic Node type that every other type inherits from
public T? Value { get; set; } = default;
public NodeType? Next { get; set; } = default;

View File

@ -2,7 +2,7 @@
namespace C_.Datastructures.LinkedList
{
internal class LinkedListNode<T> : Node<T, LinkedListNode<T>>
internal class LinkedListNode<T> : UndirectedNode<T, LinkedListNode<T>>
{//Inherits from Node
public static LinkedListNode<T> Create(T? value, LinkedListNode<T>? next)
{

View File

@ -2,7 +2,7 @@
namespace C_.Datastructures.Queue
{
internal class QueueNode<T> : Node<T, QueueNode<T>>
internal class QueueNode<T> : UndirectedNode<T, QueueNode<T>>
{
public static QueueNode<T> Create(T? value, QueueNode<T>? next)
{

View File

@ -2,7 +2,7 @@ using C_.Datastructures.Generic;
namespace C_.Datastructures.Stack
{
internal class StackNode<T> : Node<T, StackNode<T>>
internal class StackNode<T> : UndirectedNode<T, StackNode<T>>
{//Inherits from Node
public static StackNode<T> Create(T? value, StackNode<T>? next)
{