Commit 4687864a authored by Uwe Wienkop's avatar Uwe Wienkop

2020-07-01 (Mi)

parent afdd8e1c
......@@ -29,7 +29,8 @@ namespace _03BinTree
BItem item = root;
do
{
if (Zahl < item.zahl) // links oder rechts?
//if (Zahl == item.zahl) { }
if (Zahl < item.zahl) // echt kleiner! | links oder rechts?
{ // Linker Teilbaum
if (item.kleiner == null) // ist "links" frei?
{
......@@ -39,7 +40,7 @@ namespace _03BinTree
else
item = item.kleiner;
}
else
else // größer-gleich
{
if (item.groesser == null) // ist "rechts" frei?
{
......@@ -63,22 +64,55 @@ namespace _03BinTree
}
return false;
}
private void Print(BItem item)
//private void Print(BItem item)
//{
// if (item != null)
// {
// Console.WriteLine($"{item.kleiner.zahl} - {item.zahl} - {item.groesser.zahl}");
// }
//}
public void InOrderPrint()
{
InOrderPrint(root);
Console.WriteLine();
}
private void InOrderPrint(BItem item)
{ // kleiner - selbst - größer
if (item != null)
{
if (item.kleiner!= null)
Print(item.kleiner);
Console.Write("( ");
if (item.kleiner != null)
InOrderPrint(item.kleiner);
Console.Write(item.zahl + " ");
if (item.groesser!=null)
Print(item.groesser);
if (item.groesser!= null)
InOrderPrint(item.groesser);
Console.Write(") ");
}
}
public void Print()
public void PreOrderPrint()
{
Print(root);
PreOrderPrint(root);
Console.WriteLine();
}
private void PreOrderPrint(BItem item)
{ // selbst - kleiner - größer
if (item != null)
{
Console.Write("( ");
Console.Write(item.zahl + " ");
if (item.kleiner != null)
PreOrderPrint(item.kleiner);
if (item.groesser != null)
PreOrderPrint(item.groesser);
Console.Write(") ");
}
}
}
class Program
{
......@@ -86,15 +120,13 @@ namespace _03BinTree
{
BinTree bt = new BinTree();
bt.InsertItem(50);
bt.InsertItem(25);
bt.InsertItem(75);
bt.InsertItem(60);
bt.InsertItem(80);
bt.InsertItem(77);
bt.InsertItem(40);
bt.InsertItem(70);
bt.InsertItem(50);
bt.InsertItem(35);
bt.InsertItem(45);
bt.Print();
bt.PreOrderPrint();
Console.WriteLine($"Find(77): {bt.FindItem(77)}");
Console.WriteLine($"Find(78): {bt.FindItem(78)}");
}
......
......@@ -11,35 +11,44 @@ namespace _11_UebgMoTransformator
class Program
{
delegate T MeineFkt<T>(T x);
static T[] ApplyAll<T>(MeineFkt<T> fkt, params T[] werte)
delegate void Transformationen<T>(ref T[] x);
static void Verdichten(ref string [] werte)
{
T[] erg = new T[werte.Length];
Console.Write("APPLY ALL: ");
for (int i = 0; i < werte.Length; i++)
//string[] erg = new string[1];
//erg[0] = "Anton & Berta";
//werte = erg;
int anz = werte.Length / 2;
string[] erg = new string[anz];
for (int i = 0; i < 2 * anz; i += 2)
{
erg[i] = fkt(werte[i]);
Console.Write($"{erg[i]} ");
erg[i / 2] = werte[i] + "&" + werte[i + 1];
}
Console.WriteLine();
return erg;
werte = erg;
}
static void Verdichten(ref string [] werte)
static void Grossbuchstaben(ref string[] werte)
{
string[] erg = new string[1];
erg[0] = "ANTON&BERTA";
werte = erg;
for (int i = 0; i < werte.Length; i++)
{
werte[i] = werte[i].ToUpper();
}
}
static Transformationen<string> Transform;
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// Anton, Berta, Claudia, Dieter --->
// ANTON, BERTA, CLAUDIA, DIETER --->
// ANTON&BERTA, CLAUDIA&DIETER
string[] namen = { "Anton", "Berta", "Claudia", "Dieter" };
Verdichten(ref namen);
foreach (var item in namen)
string[] namen = { "Anton", "Berta", "Claudia", "Dieter","Ernst", "Friedrich"};
Transform += Grossbuchstaben;
Transform += Verdichten;
Transform(ref namen);
foreach (var item in namen)
Console.WriteLine(item);
}
}
......
......@@ -119,8 +119,8 @@ namespace Aufgabe1Posts
}
Console.WriteLine("----------------");
//postList -= new string("Max");
postList -= "Moritz";
foreach (Post post in postList)
postList-="Moritz";
foreach (Post post in postList-"Max")
{
Console.WriteLine(post);
}
......
......@@ -89,20 +89,19 @@ namespace _11BinTreePersVerwaltung2
if (right != null)
right.print();
}
}
Node root = null;
public void Print()
{
if (root != null)
root.print();
}
public IEnumerator GetEnumerator()
{
foreach (T item in root.enumerate())
yield return item;
}
public void Print()
{
if (root != null)
root.print();
}
public void Insert(T Data)
{
......@@ -139,9 +138,6 @@ namespace _11BinTreePersVerwaltung2
} while (!found);
}
}
}
class BinTree
{
}
}
......@@ -5,6 +5,18 @@ using System.Linq;
namespace _11Enumerable
{
/*
* foreach benötigt IEnumerator GetEnumerator --> Rückgabetyp object oder
* IEnumerator<T> GetEnumerator() --> Rückgabetyp T
* IEnumerable-Interface enthält nur eine Methode: IEnumerator GetEnumerator();
* IEnumerable<T> enthält die Methode IEnumerator<T> GetEnumerator(),
* erbt aber auch IEnumerable, benötigt somit ZUSÄTZLICH IEnumerator GetEnumerator
* LINQ benötigt IEnumerable, akzeptiert aber auch IEnumerable<T>, da dies ja auch
* IEnumerator GetEnumerator enthält
* Bei Angabe von :IEnumerable<T> verwenden sowohl foreach als auch LINQ IEnumerator<T> GetEnumerator
* --> IEnumerator oder IEnumerator<T> bei GetEnumerator
* --> IEnumerable oder IEnumerable<T> bei eigenen Aufzählungsfunktionen
*/
class Aufzaehlung<T> : IEnumerable<T>
{
T[] data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment