Datenstrukturen: Multidimensionales Array

in SteemSTEM6 years ago

In dem ersten Beitrag dieser Serie wurde die Datenstruktur eines Array vorgestellt. Mir war es dort Wichtig, zunächst das Prinzip und die Funktionsweise eines Arrays zu erläutern.

Nun gibt es die Möglichkeit, dass man aus einem eindimensionalen Array ein multidimensionales Array erstellen kann. Oft ist es so, dass in den jeweiligen Indizes eines Arrays Werte wie Strings oder Zahlen gespeichert werden. Wenn man aber stattdessen ein weiteres Array in den jeweiligen Indizes anlegt, so hat man ein multidimensionales Array.
In diesem Fall ein 2D-Array. Mit diesem Prinzip könnte man auch ein 3D-Array usw. erstellen. In der Praxis begegnet man öfters 2D-Arrays.

Pseudocode

# eindimensionales Array
integer[3] = {1,2,3}

# 2D-Array (zweidimensionales Array)
integer[3][3] = {{1,2,3},{4,5,6},{7,8,9}}

2darray.png
Abbildung: Eine 3x3-Matrix (oberes 2D-Array)

In der ersten Zeile wird ein Array der Größe 3 mit den Werten {1,2,3} angelegt. In der zweiten Zeile wird ein 2D-Array der Größe 3x3 erstellt. Solche Konstrukte erkennt man an zwei eckigen Klammern [][].
Um Werte bei einem 2D-Array zu manipulieren oder auszulesen, müssen nun zwei Indizes angegeben werden. Der erste Index gibt an, welchen der "inneren" Arrays man anwählt. Der zweite Index greift auf den eigentlichen Wert zu.
Wenn ich auf die 8 zugreifen möchte, so gibt man folgendes an: [2][1]. Das heißt, das dritte innere Array und aus diesem der zweite Wert.
Bitte beachten: Der Index beginnt bei 0.

Anwendungsbeispiele

zweidimensionale Arrays werden schon häufiger verwendet. Hier einige Beispiele

  • Matrix: Ein 2D-Array kann für nxm-Matrizen benutzt werden
  • Adjazenzmatrix für Graphenstrukturen
  • Grid : Brettspiele mit einem unveränderlich großen Spielfeld, Soduko, Hashi-o-kakero
  • Kreuzworträtsel : Jeder Index eines 2D-Arrays kann Buchstaben enthalten

Quelle
https://www.cs.cmu.edu/~mrmiller/15-110/Handouts/arrays2D.pdf

Sort:  
Du hast ein kleines Upvote von unserem Curation – Support – Reblog Account (German Steem Bootcamp) erhalten. Dieser wurde per Hand erteilt und nicht von einem Bot.
Du findest uns im Discord unter https://discord.gg/Uee9wDB

Du hast ein Upvote von mir bekommen, diese soll die Deutsche Community unterstützen. Wenn du mich unterstützten möchtest, dann sende mir eine Delegation. Egal wie klein die Unterstützung ist, Du hilfst damit der Community. DANKE!

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.093
BTC 64352.38
ETH 1813.56
USDT 1.00
SBD 0.39