• Keine Ergebnisse gefunden

Einführung in die Programmierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Einführung in die Programmierung"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung in die Programmierung

by André Karge

Übung - Listen & Stacks & Queues

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 1/17

(2)

letzte Woche

Packages

Recursion

(3)

diese Woche

Besprechung Übungsblatt 6

Listen

Stack

Queue

Besprechung Übungsblatt 7

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 3/17

(4)

Übungsblatt 6

(5)

Übungsblatt 6

Aufgaben 1-3 Code Beispiel

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 5/17

(6)

Listen

(7)

Listen

Beschreibung

Arbeit mit Daten unbestimmter Länge / unterschiedlicher Länge

Bessere Operationen im Vergleich zu Arrays (insert, delete, push, pop, ...)

Ist ein Datenobjekt, welches Referenzen speichert

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 7/17

(8)

Listen

Beispiel

public class Node { // Container für Integer Listenelement private int data; // Inhalt eines Listenelements

private Node next; // Referenz auf das nächste Element in der Liste //...

}

public class List {

private Node front; // Referenz auf das erste Element in der Liste private Node rear; // Referenz auf das letzte Element in der Liste private int nodeCount; // Übersicht, wie viele Nodes wir haben public List() {

this.front = null;

this.rear = null;

this.nodeCount = 0;

}

}

(9)

Listen

Übungsaufgabe (15 min)

1. Schreiben Sie ihre eigene Klasse für eine einfach verkettete Liste für Integer (eine List-Klasse und eine Node-Klasse)

2. Achten sie auf korrekte Sichtbarkeit (public vs. private) der Attribute und Methoden 3. Schreiben Sie jeweils eine Methode um Nodes am Ende, zu einem bestimmten Index und

am Anfang der Liste einzufügen

4. Schreiben Sie eine Methode, die ein Element anhand eines übergebenen Index’ zurück gibt 5. Testen Sie die Liste in einer geeigneten main-Methode

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 9/17

(10)

Stack

(11)

Stack

Beschreibung

Liste mit begrenzter Funktion

wir haben in Stack immer nur Zugriff Last Element

Hinzufügen und Entfernen arbeitet immer nur mit dem letzten Element

LIFO Prinzip (Last In First Out)

https://techwelkin.com/differences-between-stack-and-queue

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 11/17

(12)

Stack

Beispiel

public class Stack {

private Node top; // Link zum obersten Stack Element private int size;

public Stack() { this.top = null;

this.size = 0;

}

public void push(Node n) { if (this.top == null) {

this.top = n; // Referenz speichern }

else {

n.setPrev(this.top); // Stackinterner Link zum vorher aktuellsten Element this.top = n; // Stackinterner Link zum aktuellsten Element

}

this.size++;

}

//...

(13)

Stack

Übungsaufgabe (15 min)

1. Kopieren Sie ihre List-Klasse aus der vorherigen Aufgabe 2. Ändern Sie die Klasse so, dass sie einen Stack abbildet 3. Testen Sie auch hier die Funktionen in einer main-Methode

Hinweis: die Funktion pop() entfernt ein Element und die Funktion push() fügt ein Element hinzu

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 13/17

(14)

Queue

(15)

Queue

Beschreibung

Wieder eine spezielle Form einer Liste

push() und pop() haben hier andere Funktionen

enqueue(): fügt ein Element von links der Queue hinzu

dequeue(): entfernt ein Element am rechten Ende der Queue

Funktionsweise: FIFO (First In First Out)

https://techwelkin.com/differences-between-stack-and-queue

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 15/17

(16)

Queue

Übungsaufgabe (15 min)

1. Kopieren Sie ihre List-Klasse aus der ersten Aufgabe

2. Ändern Sie die Klasse so, dass sie eine Queue abbildet

3. Testen Sie auch hier die Funktionen in einer main-Methode

(17)

Fragen?

6. Dezember 2018 Einführung in die Programmierung | WS18/19 | André Karge 17/17

Referenzen

ÄHNLICHE DOKUMENTE

[r]

Dass die privaten Klinikketten über- haupt darauf angewiesen sind, sich im operativen Geschäft derart zu be- haupten, liegt auch am Verkaufsver- halten der öffentlichen Hand. So ist

März 2005 verlangte Nationalrat Pierre Kohler CVP, JU in einer parlamentarischen Initiative, dass die Pflicht für Privatpersonen, entweder Schutzräume zu erstellen oder

Gesucht ist eine Methode breakCycles() , der den Graphen nach Zyklen durchsucht und diese durch Entfernen der Kante, durch die der Zyklus gefunden wurde, auflöst. public

So entfällt diese gemäss Art. 18 Abs. 1 E-DSG, wenn eine der folgen- den Voraussetzungen erfüllt ist: die betroffene Person verfügt bereits über die entsprechenden