/* * C# Program to Create a Singly Linked Circular List */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CSTest { class Circlist { private int currentdata; private Circlist nextdata; public Circlist() { currentdata = 0; nextdata = this; } public Circlist(int value) { currentdata = value; nextdata = this; } public Circlist Insdata(int value) { Circlist node = new Circlist(value); if (this.nextdata == this) { node.nextdata = this; this.nextdata = node; } else { Circlist temp = this.nextdata; node.nextdata = temp; this.nextdata = node; } return node; } public int Deldata() { if (this.nextdata == this) { System.Console.WriteLine("\nOnly one node!!!!"); return 0; } Circlist node = this.nextdata; this.nextdata = this.nextdata.nextdata; node = null; return 1; } public void Traverse() { Traverse(this); } public void Traverse(Circlist node) { if (node == null) node = this; System.Console.WriteLine("Forward Direction!!!!"); Circlist snode = node; do { System.Console.WriteLine(node.currentdata); node = node.nextdata; } while (node != snode); } public int Gnodes() { return Gnodes(this); } public int Gnodes(Circlist node) { if (node == null) node = this; int count = 0; Circlist snode = node; do { count++; node = node.nextdata; } while (node != snode); System.Console.WriteLine("\nCurrent Node Value : " + node.currentdata.ToString()); System.Console.WriteLine("\nTotal nodes :" + count.ToString()); return count; } static void Main(string[] args) { Circlist node1 = new Circlist(1); node1.Deldata(); Circlist node2 = node1.Insdata(2); node1.Deldata(); node2 = node1.Insdata(2); Circlist node3 = node2.Insdata(3); Circlist node4 = node3.Insdata(4); Circlist node5 = node4.Insdata(5); node1.Gnodes(); node3.Gnodes(); node5.Gnodes(); node1.Traverse(); node3.Deldata(); node2.Traverse(); node1.Gnodes(); node3.Gnodes(); node5.Gnodes(); Console.Read(); } } } /* Only one Node!!!!! Current Node Value : 1 Total nodes : 5 Current Node Value : 3 Total nodes : 5 Current Node Value : 5 Total nodes : 5 Forward Direction!!!! 1 2 3 4 5 Forward Direction!!!! 2 3 5 1 Current Node Value : 1 Total nodes : 4 Current Node Value : 3 Total nodes : 4 Current Node Value: 5 Total nodes : 4