ייצוג פשוט של "תור" (עליו למדנו במבנה נתונים) בשפת #C.
הקוד פשוט מאוד להבנה:
בהצלחה.
הקוד פשוט מאוד להבנה:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LearnQueue { // תור = הראשון שנכנס הוא הראשון שיוצא // ייצוג צומת אחת בתור class Node<T> { private T info; private Node<T> next; // פונקציה בונה שלא מקבלת מצביע לאיבר הבא public Node(T info) { this.info = info; this.next = null; } // פונקציה בונה שכן מקבלת מצביע לאיבר הבא public Node(T info, Node<T> next) { this.info = info; this.next = next; } public T GetInfo() { return info; } public Node<T> GetNext() { return next; } public void SetInfo(T info) { this.info = info; } public void SetNext(Node<T> next) { this.next = next; } public override string ToString() { return info.ToString(); } } // ייצוג תור שלם class Queue<T> { private Node<T> first, last; // פונקציה בונה public Queue() { first = last = null; } public void Insert(T evarInfo) { if (last == null) { last = new Node<T>(evarInfo, null); first = last; } else { Node<T> tmp = new Node<T>(evarInfo, null); last.SetNext(tmp); last = tmp; } } // הסרה של האיבר הכי ישן שהוכנס והחזרת המידע שהיה בו public T Remove() { T evarInfo = first.GetInfo(); first = first.GetNext(); return evarInfo; } // החזרת האיבר הישן ביותר בתור public T Head() { return first.GetInfo(); } public bool IsEmpty() { return first == null && last == null; } public override string ToString() { string str = "[ "; for (Node<T> temp = first; temp != null; temp = temp.GetNext()) str += temp.GetInfo() + " "; str += "]"; return str; } } class Program { public static Queue<string> GetNames() { Queue<string> Q = new Queue<string>(); string name; while (true) { Console.WriteLine("Enter name: "); name = Console.ReadLine(); if (name == "Stop") break; Q.Insert(name); } return Q; } static void Main(string[] args) { Queue<int> Q = new Queue<int>(); Q.Insert(10); Q.Insert(30); Q.Insert(20); Console.WriteLine(Q.Remove()); Q.Insert(55); Console.WriteLine(Q.ToString()); Queue<string> Q1 = GetNames(); Console.WriteLine(Q1); } } }
בהצלחה.
אין תגובות:
הוסף רשומת תגובה