Container: Difference between revisions
From Alda
Jump to navigationJump to search
(→Facts) |
Alexahagel (talk | contribs) |
||
Line 29: | Line 29: | ||
*'''Array:''' unterstützt die ersten 3 | *'''Array:''' unterstützt die ersten 3 | ||
*'''dynamischens Array:''' wie Array, zusätzlich c.append & c.removeLast | *'''dynamischens Array:''' wie Array, zusätzlich c.append & c.removeLast | ||
*'''Dictionnary:''' wie Array ausserdem c.geht(key), c.insert(key,value), c.remove(key) | |||
*'''verkettete Liste:'''c.first(), c.insert(pos, value), c.remove(pos), c.get(pos) | |||
*'''doppelt verkettete Liste:'''* wie Liste + | |||
*'''Stack(Stapel):''' LIFO (Last In First Out) c.last(), c.append(), c.removeLast() | |||
*'''Queue:''' FIFO (First In First Out) c.first(), c.append(), c.removeFirst() | |||
*'''Deque:''' (Double Ended Queue) wie STACK + QUEUE | |||
*'''MinPriorityQueue:''' c.smallest(), c.removeSmallest(), c.insert() | |||
*'''MaxPriorityQueue:''' c.largest(), c.removeLargest(), c.insert() | |||
*'''MinMaxPriorityQueue:''' MinPriorityQueue + MaxPriorityQueue |
Revision as of 09:14, 14 April 2008
Container verwalten eine Menge von Datenobjekten.
mögliche Operationen
c.size() ist immer unterstützt
- v = c.get(i)
- v.set(i)
- v = c.first/last
- v = c.largest/smallest
- v = c.get(key)
- c.append(v)
- c.prepend(v)
- c.insert(i, v)
- c.insert(key, v)
- c.removeFirst/Last()
- c.remove(i)
- c.remove(key)
- c.removeSmallest/Largest()
Facts
- Jede dieser Operationen kann sehr effizient implementiert werden.
- Keine Datenstruktur ist bekannt die alle diese Operationen effizient implementiert.
Beispiele
- Array: unterstützt die ersten 3
- dynamischens Array: wie Array, zusätzlich c.append & c.removeLast
- Dictionnary: wie Array ausserdem c.geht(key), c.insert(key,value), c.remove(key)
- verkettete Liste:c.first(), c.insert(pos, value), c.remove(pos), c.get(pos)
- doppelt verkettete Liste:* wie Liste +
- Stack(Stapel): LIFO (Last In First Out) c.last(), c.append(), c.removeLast()
- Queue: FIFO (First In First Out) c.first(), c.append(), c.removeFirst()
- Deque: (Double Ended Queue) wie STACK + QUEUE
- MinPriorityQueue: c.smallest(), c.removeSmallest(), c.insert()
- MaxPriorityQueue: c.largest(), c.removeLargest(), c.insert()
- MinMaxPriorityQueue: MinPriorityQueue + MaxPriorityQueue