Tömb (adatszerkezet)

A Wikipédiából, a szabad enciklopédiából
(Array szócikkből átirányítva)

A számítástudományban a tömb (angolul array) olyan adatszerkezet, amelyet nevesített elemek csoportja alkot, melyekre sorszámukkal (indexükkel) lehet hivatkozni. Vektornak is nevezik, ha egydimenziós, mátrixnak esetenként, ha többdimenziós. A legtöbb programozási nyelvben minden egyes elemnek azonos adattípusa van és a tömb folytonosan helyezkedik el a számítógép memóriájában. A készítés módja alapján lehet:

  • statikus: a méret fix, deklarációban szabályozott, vagy
  • dinamikus tömb: a mérete változik, folyamatosan bővíthető.

Tömbrendszer kereszthivatkozási lista[szerkesztés]

Programozási nyelv Kezdőindex Korlátellenőrzés Dimenzió Dinamikus
Ada n ellenőrzött n init1
APL7 0 or 1 ellenőrzött n init1
Assembly 0 nem ellenőrzött 1 no
BASIC 1 nem ellenőrzött 1 init1
C 0 nem ellenőrzött n2 heap3,4
C++5 0 nem ellenőrzött n2 heap3
C# 0 ellenőrzött n2 heap3,9
Common Lisp 0 ellenőrzött n yes
D 0 változó11 n yes
FreeBasic n ellenőrzött n yes
Fortran n változó12 n heap3
IDL 0 ellenőrzött n yes
Java5 0 ellenőrzött 12 heap3
Lua 1 ellenőrzött 12 yes
MATLAB 1 ellenőrzött n8 yes
Oberon-1 0 ellenőrzött n no
Oberon-2 0 ellenőrzött n yes
Pascal n ellenőrzött n változó10
PERL n ellenőrzött 12 yes
PL/I n ellenőrzött
Python 0 ellenőrzött 12 yes
Ruby 0 ellenőrzött 12 yes
Scheme 0 ellenőrzött 12 no
Smalltalk5 1 ellenőrzött 12 yes6
Visual BASIC n ellenőrzött n yes
Windows PowerShell 0 ellenőrzött n2 heap
  1. A méret inicializálható, utána már nem változtatható
  2. Megengedi, hogy tömböket tömbökből hozzunk létre, ezáltal emulálhatóak a többdimenziós tömbök
  3. A méret csak akkor adható meg, ha a kupacnak (heap) már le van foglalva hely a memóriában
  4. C99 megengedi a változó méretű tömbök használatát, azonban jelenleg nincs még olyan fordító, ami támogatná ezt a funkciót
  5. Ez a lista szigorúan csak a nyelvek saját képességeit hasonlítja össze. Minden nyelvben (még assemblyben is) lehetséges bonyolultabb tömbkezelést megvalósítani kiegészítő könyvtárakkal.
  6. Az Array osztály ugyan fix méretű, de az OrderedCollection dinamikus
  7. Az index első eleme lehet 0 vagy 1, de a teljes munkatérre érvényesül majd ez a szabály
  8. Minimum kétdimenziós
  9. Megengedi, hogy fix méretű tömböt készítsünk "unsafe" kódban, ezáltal javítva az átjárhatóságot más nyelvekkel.
  10. Implementációkként változik. Újabbak (FreePascal és Delphi) már engedi a kupac-bázisú dinamikus tömbök használatát
  11. A viselkedés szabályozható a fordítóprogram kapcsolóival.
  12. Majdnem mindegyik Fortran implementáció engedi a határvizsgálatot a fordítóprogram kapcsolóival. Azonban hatékonysági szempontból alapértelmezettként ezt a képességet kikapcsolják.

További információk[szerkesztés]