public void Delete(T data) { CList <T> temp = head; if (head.data.Equals(data)) { if (head.next.data.Equals(data)) { head = null; } else { while (temp.next != head) { temp = temp.next; } head = head.next; temp.next = head; } return; } while (temp.next != head) { if (temp.next.data.Equals(data)) { temp.next = temp.next.next; } temp = temp.next; } }
public void InsertAt(T data, int pos) { if (pos == 1) { Prepend(data); } else { CList <T> newNode = new CList <T>(data); CList <T> temp = head; int k = 1; while (temp.next != head) { if (k == pos - 1) { newNode.next = temp.next; temp.next = newNode; return; } temp = temp.next; k += 1; } if (temp.next == head && k == pos - 1) { newNode.next = temp.next; temp.next = newNode; return; } Console.WriteLine("Position invalid"); } }
public void PrintList() { if (head == null) { Console.WriteLine("List Is Empty"); return; } CList <T> node = head; do { Console.Write(node.data + " "); node = node.next; } while (node != head); Console.WriteLine(); }
public void NodeCount() { if (head == null) { Console.WriteLine("List Is Empty"); return; } CList <T> node = head; int count = 0; do { node = node.next; count += 1; } while (node != head); Console.WriteLine($"Circular list Length is {count}"); }
public void Append(T data) { if (head == null)//Insert First Time { Prepend(data); } else { CList <T> temp = head; while (temp.next != head) { temp = temp.next; } CList <T> newNode = new CList <T>(data); temp.next = newNode; newNode.next = head; } }
public void Prepend(T data) { CList <T> cNode = new CList <T>(data); cNode.next = cNode; if (head == null)//Insert First Time { head = cNode; } else { CList <T> temp = head; while (temp.next != head) { temp = temp.next; } cNode.next = head; temp.next = cNode; head = cNode; } }
public void NodeSearch(T data) { if (head == null) { Console.WriteLine("List Is Empty"); return; } CList <T> node = head; int count = 0; do { if (node.data.Equals(data)) { Console.WriteLine($"{data} found at index {count + 1}"); return; } node = node.next; count += 1; } while (node != head); Console.WriteLine($"data not found"); }
public CircularLinkedList() { head = null; }
public CList(T data) { this.data = data; this.next = null; }