Arrays / Listen Flashcards

(15 cards)

1
Q

Tafelübung
Arrays

Problemen bei der Verwendung von
Standardarrays

A

Array zu klein:
Es kann ein Programmfehler auftreten

Array zu groß:
Verschwendung von Speicherplatz

Array vergrößern:
Hat i. d. R. Umkopieren des Speicherinhaltes zur Folge

Feste Itemreihenfolge:
Einfügen und Löschen ist mit viel Aufwand verbunden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Tafelübung
Listen

Sonderfälle!

A

Mögliche Fälle (je nach Operation):

leere Liste

Einfügen/Löschen/. . .am Anfang der Liste

Einfügen/Löschen/. . . in der Mitte der Liste

Einfügen/Löschen/. . .am Ende der Liste

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Tafelübung
Listen

Vorteile

A

) Verkettete Listen . . .
. . . enthalten nicht mehr Elemente als nötig
. . . können beliebig wachsen
. . . können an beliebiger Stelle Elemente einfügen und löschen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Tafelübung

Schleife über verkettete Liste

A

for (ListItem i = head; i != null; i = i.next) {

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Tafelübung

Einfügen ans Ende der Liste

A
for (ListItem i = head; i != null; i = i.next) {
    if (i.next == null) {
        i.next = newItem;
        return;    
    }
}

Wichtig IMMER mit return beenden sonst wächst Liste ja immer weiter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tafelübung

Einfügen ans Ende der Liste mit TAIL

A
ListItem newItem = new ListItem();
newItem.value = 4;
tail.next = newItem;
tail = newItem;

keine Schleife mehr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tafelübung

Liste leer?

A

head == null, tail == null

Muss abgefangen werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tafelübung

Entfernen aus Liste

A

Zusätzlicher Zeiger auf vorherigen:

ListItem prev = null;
noch abfangen, falls Liste leer ist...
for (ListItem i = head; i != null; i = i.next) {
    if...value stimmt...
    prev.next = i.next;
    prev = i;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

KLAUSURAUFGABE SS17

Welche Aussagen bzgl. verketteter Listen sind gültig?

  1. Der Zugriff auf ein einzelnes Listenelement benötigt unabhängig von der Position des
    Listenelements immer O(n); n sei die Anzahl der Elemente in der Liste.
  2. Das Löschen eines Listenelements hat dieselbe Komplexitätsklasse wie das Auffinden
    eines Elements.
  3. Die Implementierung eines Stapels (Stack) ist ohne verkettete Listen nicht möglich.
A

Nur 2.

  1. Das Löschen eines Listenelements hat dieselbe Komplexitätsklasse wie das Auffinden
    eines Elements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

KLAUSURAUFGABE WS17

Welche Aussagen treffen auf unsortierte Listen zu?

In einer unsortierten Liste sind alle Elemente entweder aufsteigend oder
absteigend angeordnet.

Bei der Einbettung in ein Array ist der letzte gespeicherte Wert im Array
der kleinste in der unsortierten Liste gespeicherte Wert.

Die Laufzeitkomplexität bei der Entnahme des Extremwerts beträgt im
schlechtesten Fall (worst case) O(log n).
A

Alle FALSCH

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

KLAUSURAUFGABE WS16

Welche Aussagen bzgl. verketteter Listen sind gültig?

Der Zugriff auf ein einzelnes Listenelement benötigt unabhängig von der Position des
Listenelements immer O􀀀n; n sei die Anzahl der Elemente in der Liste.

Das Löschen eines Listenelements hat dieselbe Komplexitätsklasse wie das Auffinden
eines Elements.

Die Implementierung eines Stapels (Stack) ist ohne verkettete Listen nicht möglich.

A

Nur 2.

Das Löschen eines Listenelements hat dieselbe Komplexitätsklasse wie das Auffinden
eines Elements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

KLAUSURAUFGABE SS15

In einer unsortierten Liste sind alle Elemente entweder aufsteigend oder
absteigend angeordnet.

Bei der Einbettung in ein Array ist der letzte gespeicherte Wert im Array
der kleinste in der unsortierten Liste gespeicherte Wert.

Die Laufzeitkomplexität bei der Entnahme des Extremwerts beträgt im
schlechtesten Fall (worst case) O(log n).
A

Alle FALSCH

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vorlesung

Listen VS Arrays

Speicherbedarf

A

Listen (einfach):
dynamische Anpassung an die Anzahl der enthaltenen Elemente

immer nur so viel, wie nötig
Overhead: Speicherbedarf für Zeiger

Arrays:
konstanter Speicherbedarf

Speicherplatzverschwendung bei überdimensioniertem Feld

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vorlesung

Listen VS Arrays

Elemente suchen

A

Listen (einfach):

lineare Suche O(n)

Arrays:

binäre Suche (falls aufsteigend sortiert) O(logn)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vorlesung

Listen VS Arrays

Zugriff auf Element

A

Liste (einfach):

Liste vom Anfang bis zur gesuchten
Position durchlaufen

Arrays:

direkter Zugriff

How well did you know this?
1
Not at all
2
3
4
5
Perfectly