using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LinkedList { class Program { static void Main(string[] args) { List list = new List(); Product[] products = new Product[] { new Product("A"), new Product("B"), new Product("C"), }; list.Append(products[0]); list.Append(products[1]); list.Append(products[2]); Console.WriteLine("Found it {0}", list.Find(products[1]) != null ? list.Find(products[1]).Product.Name : "Not found"); list.Display(); list.Remove(products[0]); list.Remove(products[1]); list.Remove(products[2]); list.Display(); list.Insert(products[0]); list.Insert(products[1]); list.Insert(products[2]); list.Display(); list.Remove(products[0]); list.Remove(products[1]); list.Remove(products[2]); list.Insert(products[0]); list.Insert(products[2]); Link f = list.Find(products[0]); list.Insert(f, products[1]); list.Display(); Console.ReadKey(); } private static void Test() { List l = new List(); Product[] products = new Product[] { new Product("A"), new Product("B"), new Product("C"), }; l.Append(products[0]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Append(products[1]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Append(products[2]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); Console.WriteLine("Remove A first"); l.Remove(products[0]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[1]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[2]); l.Remove(products[2]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Append(products[0]); l.Append(products[1]); l.Append(products[2]); Console.WriteLine("Remove C first"); l.Remove(products[2]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[1]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[0]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Append(products[0]); l.Append(products[1]); l.Append(products[2]); Console.WriteLine("Remove B first"); l.Remove(products[1]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[2]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); l.Remove(products[0]); Console.WriteLine("Found it {0}", l.Find(products[0]) != null ? l.Find(products[0]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[1]) != null ? l.Find(products[1]).Product.Name : "Not found"); Console.WriteLine("Found it {0}", l.Find(products[2]) != null ? l.Find(products[2]).Product.Name : "Not found"); Console.WriteLine("Insert products"); l.Insert(products[0]); l.Insert(products[1]); l.Insert(products[2]); l.Display(); l.Remove(products[1]); l.Display(); l.Remove(products[0]); l.Display(); l.Remove(products[2]); l.Display(); Console.WriteLine("Insert products again"); l.Insert(products[0]); l.Insert(products[2]); Link f = l.Find(products[0]); l.Insert(f, products[1]); l.Display(); } } } /* * * * */