Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Created by SharpDevelop.
- * User: fhrl0
- * Date: 21/08/2020
- * Time: 10:28 p. m.
- * Vertion: 0.7.0
- * To change this template use Tools | Options | Coding | Edit Standard Headers.
- */
- using System;
- using System.Collections.Generic;
- namespace Test{
- /// <summary>
- /// You do the right thing!.
- /// </summary>
- public class LinkedVector<T>{
- private LinkedList<LinkedVector<T>>ListVector;
- private T Node;
- public LinkedVector(){
- this.Constructor(this)
- .Node=default(T);
- }
- public LinkedVector(T Header){
- this.Constructor(this)
- .Node=Header;
- }
- private LinkedVector<T>Constructor(LinkedVector<T>InitialVector){
- return (this.ListVector=new LinkedList<LinkedVector<T>>())
- .AddFirst(InitialVector)
- .Value;
- }
- public LinkedVector(T Header,LinkedList<T>Coordinades){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
- if(Coordinades.Count.Equals((int)0)){
- this.Constructor(this)
- .Node=Header;
- }else{
- LinkedVector<T>LastVector=this;
- foreach(T Item in Coordinades)
- LastVector=(LastVector.ListVector=new LinkedList<LinkedVector<T>>())
- .AddFirst(new LinkedVector<T>(Item))
- .Value;
- LastVector.Constructor(this);
- this.Node=Header;
- }
- }
- private LinkedVector<T>Find(T node){
- foreach(LinkedVector<T>Item in this.ListVector)
- if(Item.Node.Equals(node))
- return Item;
- return this;//null;
- }//Euclidean compatibility.
- public void cobineWithFirst(LinkedList<T>CoordinatesToAdd){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
- LinkedVector<T>LastVector=this,
- Auxiliary;
- foreach(T Item in CoordinatesToAdd){
- Auxiliary=LastVector.Find(Item);
- if(Auxiliary.Equals(LastVector))//.Equals(null);
- LastVector=LastVector.ListVector.AddFirst(new LinkedVector<T>(Item))
- .Value;
- else(LastVector=Auxiliary)
- .Node=Item;
- }
- LastVector.ListVector.First.Value=this;
- }//Non-euclidean compatibility.
- public void addFrist(LinkedList<T>Coordinates){//(x,y)->end,(x)->end,(x)->end,(x,y,z)->end
- LinkedVector<T>LastVector=this;
- foreach(T Item in Coordinates)
- LastVector=LastVector.ListVector.AddFirst(new LinkedVector<T>(Item)).Value;
- LastVector.ListVector.First.Value=this;
- }
- ~LinkedVector(){
- ListVector.Clear();
- ListVector=default(LinkedList<LinkedVector<T>>);//delete
- Node=default(T);//delete
- }
- }
- }
Add Comment
Please, Sign In to add comment