Container: Difference between revisions

From Alda
Jump to navigationJump to search
Line 31: Line 31:
*'''Dictionnary:''' wie Array ausserdem c.geht(key), c.insert(key,value), c.remove(key)
*'''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)
*'''verkettete Liste:'''c.first(), c.insert(pos, value), c.remove(pos), c.get(pos)
*'''doppelt verkettete Liste:'''* wie Liste +
*'''doppelt verkettete Liste:'''* wie Liste + ...
*'''Stack(Stapel):''' LIFO (Last In First Out) c.last(), c.append(), c.removeLast()
*'''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()
*'''Queue:''' FIFO (First In First Out) c.first(), c.append(), c.removeFirst()

Revision as of 10: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