Untitled
unknown
plain_text
9 months ago
4.5 kB
2
Indexable
מחלקה הלקוח המתמיד
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Unit4.CollectionsLib;
namespace ConsoleApp8
{
internal class Customer
{
private string name;
private Node<Flight> flights;
private int miles;
public Customer (string name)
{
this.name = name;
flights = null;
miles = 0;
}
public void AddNewFlight (Flight other)
{
Node<Flight> p = flights;
bool IsIn = false;
while (p != null)
{
if (p.GetValue().GetId() == other.GetId())
{
IsIn = true;
}
p = p.GetNext();
}
if(!IsIn)
{
flights= new Node<Flight>(other,flights);
}
}
public int MostPopular()
{
int[] arr= new int[50];
Node<Flight> p= flights;
while(p != null)
{
if(p.GetValue().GetDestination() != 0)
{
arr[p.GetValue().GetDestination()]++;
}
p=p.GetNext();
}
int max = 0;
for(int i = 0; i < arr.Length; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
return max;
}
public int SumSameFlight (Customer other)
{
Node<Flight> p1= flights;
Node<Flight> p2= other.flights;
int count = 0;
while(p1 != null)
{
Node<Flight> p3 = other.flights;
while( p3 != null)
{
if(p1.GetValue().IsSame(p3.GetValue()))
{
count++;
}
p3 = p3.GetNext();
}
p1= p1.GetNext();
}
return count;
}
}
}
המחלקה - flight
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
internal class Flight
{
private int id;
private int origin;
private int destination;
private string Fclass;
private int miles;
public Flight (int id, int origin, int destination)
{
this.id = id;
this.origin = origin;
this.destination = destination;
}
public int GetId()
{
return id;
}
public int GetOrigin()
{
return origin;
}
public int GetDestination()
{
return destination;
}
public string GetFclass()
{
return Fclass;
}
public int GetMiles()
{
return miles;
}
public bool IsSame (Flight other)
{
if (other.origin == origin && other.destination == destination && other.Fclass == Fclass)
{
return true;
}
return false;
}
}
}
פעולות על רשמיה
החוליה האחרונה - פתרון
public static Node<int> EndNode(Node<int> list)
{
Node<int> p = list;
while (p.GetNext()!=null)
p = p.GetNext();
return p;
}
החוליה הקודמת - פתרון
public static Node<int> Prev(Node<int> list, Node<int> p)
{
if (p == list)
return null;
Node<int> prev = list;
while (prev.GetNext() != p)
prev = prev.GetNext();
return prev;
}
פעולות על תור
העתקת תור – פעולה המחזירה תור זהה
public static Queue<int> Clone(Queue<int> q)
{
Queue<int> tmp1 = new Queue<int>();
Queue<int> tmp2 = new Queue<int>();
while (!q.IsEmpty())
{
tmp1.Insert(q.Head());
tmp2.Insert(q.Remove());
}
while (!tmp2.IsEmpty())
{
q.Insert(tmp2.Remove());
}
return tmp1;
}
היפוך תור בעזרת רקורסיה
public static void Reverse(Queue<int> q)
{
if (!q.IsEmpty())
{
int x = q.Remove();
Reverse(q);
q.Insert(x);
}
}Editor is loading...
Leave a Comment