Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 2 KB
using System;
using System.Text;
namespace Folyok
{
class Folyo
{
public string nev = "Nincs";
public Folyo hova = null;
public System.Collections.ArrayList honnan = new System.Collections.ArrayList();
public Folyo(string nev)
{
this.nev = nev;
}
public Folyo(string nev, Folyo hova)
{
this.nev = nev;
this.hova = hova;
}
}
class Program
{
const string InpFile = "folyo.be";
const string OutFile = "folyo.ki";
private int N;
private string folyo;
private System.IO.StreamWriter sw = new System.IO.StreamWriter(OutFile, false, Encoding.Default);
private System.Collections.ArrayList tarolo = new System.Collections.ArrayList();
private System.Collections.Hashtable folyok = new System.Collections.Hashtable();
private void UjFolyo(string nev, string hova)
{
if (!(folyok.ContainsKey(hova))) {
folyok.Add(hova, new Folyo(hova));
}
folyok.Add(nev, new Folyo(nev, (Folyo) folyok[hova]));
((Folyo) folyok[hova]).honnan.Add(folyok[nev]);
}
private void Beolvas()
{
string nev, hova;
System.IO.StreamReader sr = new System.IO.StreamReader(InpFile, Encoding.Default);
N = Convert.ToInt32(sr.ReadLine());
for (int i = 0; i < N; i++) {
nev = sr.ReadLine();
hova = sr.ReadLine();
UjFolyo(nev, hova);
}
folyo = sr.ReadLine();
sr.Close();
}
private void RekurzioA(string nev)
{
foreach (Folyo f in ((Folyo) folyok[nev]).honnan) {
RekurzioA(f.nev);
tarolo.Add(f.nev);
}
}
private void RekurzioB(string nev)
{
if (((Folyo) folyok[nev]).hova != null) {
RekurzioB(((Folyo) folyok[nev]).hova.nev);
tarolo.Add(((Folyo) folyok[nev]).hova.nev);
}
}
private void KiirA()
{
tarolo.Clear();
RekurzioA(folyo);
sw.WriteLine(tarolo.Count);
foreach (string s in tarolo) {
sw.WriteLine(s);
}
}
private void KiirB()
{
tarolo.Clear();
RekurzioB(folyo);
sw.WriteLine(tarolo.Count);
foreach (string s in tarolo) {
sw.WriteLine(s);
}
sw.Close();
}
public static void Main(string[] args)
{
Program program = new Program();
program.Beolvas();
program.KiirA();
program.KiirB();
}
}
}