Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SingleLinkedListAllinOne { class Node { public int element; public Node link; public Node() { element =

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SingleLinkedListAllinOne { class Node { public int element; public Node link; public Node() { element = -1; } public Node(int n) { element = n; } } class LinkedList { public Node header; public LinkedList() { header = null; } // ------------------------------------------------------------- public bool isEmpty() // true if no nodes { return header == null; } // ------------------------------------------------------------- public Node Search(int KEY) { Node current = header; while (current != null && current.element != KEY) current = current.link; return current; } public void ShowLinkedList() { if (header == null) Console.WriteLine("The list is empty!"); else { Node current = header; Console.Write("{0}->", current.element); while (!(current.link == null)) { current = current.link; Console.Write("{0}->", current.element); } Console.Write("null"); Console.WriteLine(); } } public Node searchPrevious(int KEY) { if (header == null) return header; else { Node current = header; if (current.element == KEY) return null; while (!(current.link == null) && (current.link.element != KEY)) current = current.link; return current; } } public void Insert(int newItem, int preKey) { Node current; Node newNode = new Node(newItem); current = Search(preKey); newNode.link = current.link; current.link = newNode; } public void Delete(int KEY) { if (header.element == KEY) header = header.link; else { Node p = searchPrevious(KEY); if (p.link == null) Console.WriteLine("there is no such item."); if (!(p.link == null)) p.link = p.link.link; } } public void Append(int newItem) { Node newNode = new Node(newItem); newNode.link = header; header = newNode; } public void Remove() { if (header != null) header = header.link; } } class SingleLinkedList { static int ShowMenu() { Console.WriteLine(" \tLinked List Testing Program "); Console.WriteLine(" Enter the operation number: (1)Output (2)Insert (3)Search (4)Remove (5)Deletion (6)Append (7)Exit "); return int.Parse(Console.ReadLine()); } static void Main(string[] args) { LinkedList LL = new LinkedList(); int sel = 0; while (sel != 7) { sel = ShowMenu(); switch (sel) { case 1: //Output Console.WriteLine("The current data in the list: "); LL.ShowLinkedList(); break; case 2: //Insert if (LL.isEmpty()) { Console.WriteLine("Empty list...Append first!"); break; } Console.WriteLine("Before insert: "); LL.ShowLinkedList(); Console.Write("Enter a value to insert: "); int x = int.Parse(Console.ReadLine()); Console.Write("Enter where to insert: "); int pos = int.Parse(Console.ReadLine()); LL.Insert(x, pos); Console.WriteLine("After insert: "); LL.ShowLinkedList(); break; case 3: //Search Console.Write("Enter target to search for: "); int target = int.Parse(Console.ReadLine()); Node found = LL.Search(target); if (found != null) Console.WriteLine("{0} is found.", found.element); else Console.WriteLine("{0} is not found.", target); break; case 4: //Remove Console.WriteLine("Before remove: "); LL.ShowLinkedList(); LL.Remove(); Console.WriteLine("After remove: "); LL.ShowLinkedList(); break; case 5: Console.WriteLine("Before delete: "); LL.ShowLinkedList(); Console.WriteLine("Enter the number to delete: "); int d = int.Parse(Console.ReadLine()); LL.Delete(d); Console.WriteLine("After delete: "); LL.ShowLinkedList(); break; case 6: Console.Write("Enter value to append: "); int x_appd = int.Parse(Console.ReadLine()); LL.Append(x_appd); LL.ShowLinkedList(); break; case 7: Console.WriteLine("End of the testing. Goodbye!\a\a"); break; default: Console.WriteLine("Invalid input!"); break; } } /////////////////////////////////////////////////////////////// } } } 

Use P2-1 SingleLinedList as a reference, add the following operations in the class LinkedList; Find the average data values of the linked list. Find the item with largest key, and then delete the node. Test ALL operations in the Main method. (Also display the average of the data values of the linked list, the largest key, the linked list before and after deleting the node with the largest key; in c# plzzzzzzzzz

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions