FHRL

LinkedVector 0.7.0 (project canceled due to cyber attack)

Sep 3rd, 2020 (edited)
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 KB | None | 0 0
  1. /*
  2.  * Created by SharpDevelop.
  3.  * User: fhrl0
  4.  * Date: 21/08/2020
  5.  * Time: 10:28 p. m.
  6.  * Vertion: 0.7.0
  7.  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  8.  */
  9. using System;
  10. using System.Collections.Generic;
  11.  
  12. namespace Test{
  13.     /// <summary>
  14.     /// You do the right thing!.
  15.     /// </summary>
  16.     public class LinkedVector<T>{
  17.         private LinkedList<LinkedVector<T>>ListVector;
  18.         private T Node;
  19.         public LinkedVector(){
  20.             this.Constructor(this)
  21.                 .Node=default(T);
  22.         }
  23.         public LinkedVector(T Header){
  24.             this.Constructor(this)
  25.                 .Node=Header;
  26.         }
  27.         private LinkedVector<T>Constructor(LinkedVector<T>InitialVector){
  28.             return (this.ListVector=new LinkedList<LinkedVector<T>>())
  29.                         .AddFirst(InitialVector)
  30.                         .Value;
  31.         }
  32.         public LinkedVector(T Header,LinkedList<T>Coordinades){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
  33.             if(Coordinades.Count.Equals((int)0)){
  34.                 this.Constructor(this)
  35.                       .Node=Header;
  36.             }else{
  37.                 LinkedVector<T>LastVector=this;
  38.                 foreach(T Item in Coordinades)
  39.                     LastVector=(LastVector.ListVector=new LinkedList<LinkedVector<T>>())
  40.                                           .AddFirst(new LinkedVector<T>(Item))
  41.                                           .Value;
  42.                 LastVector.Constructor(this);
  43.                 this.Node=Header;
  44.             }
  45.         }
  46.         private LinkedVector<T>Find(T node){
  47.             foreach(LinkedVector<T>Item in this.ListVector)
  48.                 if(Item.Node.Equals(node))
  49.                     return Item;
  50.             return this;//null;
  51.         }//Euclidean compatibility.
  52.         public void cobineWithFirst(LinkedList<T>CoordinatesToAdd){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
  53.             LinkedVector<T>LastVector=this,
  54.                            Auxiliary;
  55.             foreach(T Item in CoordinatesToAdd){
  56.                 Auxiliary=LastVector.Find(Item);
  57.                 if(Auxiliary.Equals(LastVector))//.Equals(null);
  58.                     LastVector=LastVector.ListVector.AddFirst(new LinkedVector<T>(Item))
  59.                                          .Value;
  60.                 else(LastVector=Auxiliary)
  61.                     .Node=Item;
  62.             }
  63.             LastVector.ListVector.First.Value=this;
  64.         }//Non-euclidean compatibility.
  65.         public void addFrist(LinkedList<T>Coordinates){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
  66.             LinkedVector<T>LastVector=this;
  67.             foreach(T Item in Coordinates)
  68.                 LastVector=LastVector.ListVector.AddFirst(new LinkedVector<T>(Item)).Value;
  69.             LastVector.ListVector.First.Value=this;
  70.         }
  71.         ~LinkedVector(){
  72.             ListVector.Clear();
  73.             ListVector=default(LinkedList<LinkedVector<T>>);//delete
  74.             Node=default(T);//delete
  75.         }
  76.     }
  77. }
Add Comment
Please, Sign In to add comment