Assoziativarray in Java

Status
Für weitere Antworten geschlossen.

Richmand

Newbie
Registriert
Nov. 2007
Beiträge
1
Hi.

Ich habe ein Problem und zwar haben wir kürzlich in Informatik mit Java-Programmieren angefangen und sollten als 1. Aufgabe folgendes C-Programm auf Java umschreiben. Das Programm realisiert ein Assoziativarray, dass ein Liste von Namen entgegennimmt, die Häufigkeit der Eingabe zählt und beides anschließend wieder ausgibt. Ich hoffe, es klann mir jemand bei der Umwandlung nach Java helfen.

/*Assoziativarray
Variante des Programms aus Stroustrup, 1995, Abschnitt 2.3.10 "Refer-ences"*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define large 1024
struct pair{char* name; int val;};
struct pair vec[large+1]; /*Die externe Tabelle wird zu null
initialisiert*/

/*Verwaltung eine Menge von Paaren. Sucht nach p und liefert den Zeiger auf
das entsprechende Paar. Falls p noch nicht vorkommt, wird der Zeiger auf
ein noch unbenutzes Paar geliefert.*/

struct pair* find(const char*p){
int i;
for (i=0; vec.name; i++) if (strcmp(p, vec.name)==0) return &vec;
if (i==large) return &vec[large-1];
return &vec;
}
int* value(const char* p) {
struct pair* res = find(p);
if (res->name==0) { /*Initialisieren eines neuen Paares*/
res->name = malloc(strlen(p) + 1); /*Speicherreservierung*/
strcpy(res->name, p);
}
return &res->val;
}
void main() {
char buf[256];
int i;
printf("Haeufigkeit eingegebener Woerter (Abschliessen mit \".\")\n");
scanf("%s", buf);
while (buf[0]!='.'){(*value(buf))++; scanf("%s", buf);}
printf("\n");
for (i=0; vec.name; i++) printf("%s: %u\n", vec.name, vec.val);
}


Danke schonmal...
 
Hausaufgaben solltest du selber machen, wenn du dabei ein konkretes Problem hast helfen wir dir gerne weiter.
 
Bitte benutz doch die Code Blöcke welche man beim Verfassen auswählen kann um das ganze übersichtlicher zu gestalten (natürlich mit den korrekten tab-Vorschüben).

So werd ich mir sicher nicht die Mühe machen und alles noch auseinanderfriemeln in Gedanken. Sorry!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben