Morgen,
ich hatte die aufgabe mit ringen zuarbeiten, also sog. listen, wo das ende wieder mit dem anfang verbunden wird. nun wollte ich gern wissen,ob ich das so richtig gemacht habe.
als erstes soll ich einen ring erzeugen, der 3 elemente enthält und zwar die basen 'T', 'A', 'T'.
dazu hab ich folgende klassen erzeugt:
Dann sollte ich den ring um eine base rotieren lassen:
Dann sollte ich eine neue base direkt nach dem ersten element einfügen, wobei ich auch den fall eines leeren rings und eines rings mit nur einem element betrchten sollte:
und schließlich sollte ich die zweite zelle des rings löschen, wobei ich auch berücksichtigen sollte, dass der ring auch weniger als 3 elemente enthält:
Kann mir jemand sagen, ob das so halbwegs richtig ist? ich bin mir da eher unsicher, weil ich mal denke, dass das syntaktisch eher schlecht formuliert wurde von mir. hoffe ich bekomme noch ein paar verbesserungshilfen.
lg
ich hatte die aufgabe mit ringen zuarbeiten, also sog. listen, wo das ende wieder mit dem anfang verbunden wird. nun wollte ich gern wissen,ob ich das so richtig gemacht habe.
als erstes soll ich einen ring erzeugen, der 3 elemente enthält und zwar die basen 'T', 'A', 'T'.
dazu hab ich folgende klassen erzeugt:
Java:
public class DNASequenceRing {
Cell start;
DNASequenceRing () {
start = null;
}
Java:
public class Cell {
public char base;
public Cell next;
}
// Erzeugung einer Liste
Cell a = new Cell();
Cell b = new Cell();
Cell c = new Cell();
a.base = 'T';
b.base = 'A';
c.base = 'T';
// Verkettung des Rings
DNASequenceRing der_eine_ring = new DNASequenceRing ();
der_eine_ring.start = a;
a.next = b;
b.next = c;
c.next = der_eine_ring.start;
Dann sollte ich den ring um eine base rotieren lassen:
Java:
void rotateForward () {
// Methode, die den Ring um eine Base dreht
der_eine_ring.start = a.next;
a.next = b;
b.next = c;
c.next = der_eine_ring.start;
}
Dann sollte ich eine neue base direkt nach dem ersten element einfügen, wobei ich auch den fall eines leeren rings und eines rings mit nur einem element betrchten sollte:
Java:
void addBase (char base) {
// Methode, die eine Base direkt nach dem ersten Element des Rings einfügt
Cell a2 = new Cell ();
a2.base = 'C';
if (this.start == null) {
return 0;
System.out.println("Der Ring ist leer");
}
if (this.start.next = this.start) {
this.start.next = a2.base;
a2.next = this.start;
System.out.println ("Der Ring enhielt nur eine Element");
}
if (this.start.next != this.start) {
der_eine_ring.start = a;
a.next = a2;
a2.next = b ;
b.next = c;
c.next = der_eine_ring.start;
}
}
und schließlich sollte ich die zweite zelle des rings löschen, wobei ich auch berücksichtigen sollte, dass der ring auch weniger als 3 elemente enthält:
Java:
void deleteSecond () {
// Methode, die 2. Element der Liste löscht
Cell current = this.start;
int gesehene_elemente = 1;
while ( current.next != this.start) {
current = current.next;
gesehene_elemente++;
}
if (gesehene_elemente == 2) {
current.next = current.next.next;
}
if ( current = null || current.next = this.start || current.next.next = this.start ) {
System.out.println ("Die Liste enthält weniger als drei Elemente");
}
}
Kann mir jemand sagen, ob das so halbwegs richtig ist? ich bin mir da eher unsicher, weil ich mal denke, dass das syntaktisch eher schlecht formuliert wurde von mir. hoffe ich bekomme noch ein paar verbesserungshilfen.
lg