Da das letzte Element keinen Nachfolger hat, wird der Zeiger auf Null gesetzt, damit man später das Listenende erkennen kann. So eine Liste wird als einfach verkettet bezeichnet, da die Elemente untereinander nur eine 1-fache Verbindung haben. Es gibt auch eine doppelt verkettete Liste, aber dazu kommen wir später. Kommen wir zu der Implementierung. // Definition eines Listenelements
struct Listenelement
// Das sind die Daten die wir verwalten wollen (Datenbereich)
Film film;
// Zeiger auf den Nachfolger (Zeiger)
Listenelement *nachfolger;};
Damit haben wir ein Listenelement definiert, auf dem wir unsere Liste aufbauen. Wie wir bereits wissen, beginnt die Liste mit einem Listenkopf, also erstellen wir dynamisch einen. // Listenkopf erstellen
Listenelement *listenkopf = new Listenelement();
Da der Listenkopf auch ein Element der Liste ist müssen wir es auch mit Daten belegen. Proggen.org - Einfach verkettete Listen - Raum für Ideen. // Listenkopf mit Daten belegen
listenkopf-> = "Stargate";
listenkopf-> = 2005;
listenkopf-> = 1;
// Den Zeiger auf Null setzen, da kein weiteres Element in der Liste existiert
listenkopf->nachfolger = NULL;
Nach dem der Listenkopf erstellt wurde, können weitere Listenelemente in die Liste eingefügt werden.
Einfach Verkettete Listen C.L
= NULL) newroot->prev = NULL; // wichtig!! free(*pRoot);
*pRoot = newroot;
return 1; // neue root}
/* Beginnend mit (*pRoot)->next wird geprüft, ob ein Knoten die übergebenen daten enthält
* Der Vorgänger wird gespeichert, damit man im Falles des Findens den Knoten aushängen kann
* Falls nichts gefunden wird, ist curr->next = NULL und man ist am Ende angekommen
* Nun wird noch curr untersucht und evtl abgehängt. Kommen Daten mehrmals vor, so wird
* nur das erste Vorkommen gelöscht. Einfach verkettete listen c.l. Da ein Löschen am Anfang eine neue Wurzel ergibt,
* wird immer die Wurzel zurückgegeben. printf("löschen nach root\n");
node* prev = *pRoot;
node* curr = (*pRoot)->next;
for (; curr->next!
Einfach Verkettete Listen
Wenn wir den Wert noch benötigen würden, müssten wir zunächst eine Kopie des Zeigers in einer anderen Variable machen. Nun können wir herausfinden, an welcher Position sich das zu entfernende Element befindet. Wir durchlaufen die Liste erneut und halten einfach ein Element vorher an. Einfach verkettete listen c.s. Die Funktion, um an einen Index zu gelangen kann so formuliert werden:
struct AddressNode * GetNode ( struct AddressNode * head, int index)
while ( index > 0 && head! = NULL)
head = head - > Next;
index --;}
return head;}
Nun können wir die eigene Position herausfinden und damit anschließend das vorhergehende Element bestimmen. Sollte es kein vorhergehendes Element geben, so wird der Kopf der Liste entfernt und das Kopfelement muss neu gesetzt werden. Ein Beispiel
Wenn ein Element entfernt wird, müssen wir im Hauptprogramm mit dieser Liste also immer darauf achten, dass der Kopf der Liste nicht verloren geht:
int main ( void)
struct AddressNode * head;
struct AddressNode * node;
node = NewNode ( NULL); // Erste Node anlegen.
Einfach Verkettete Listen C.S
= NULL) {
vorheriges_buch -> naechstes = neues_buch;}
//Erstes Buch initialisieren
if( erstes_buch == NULL) {
erstes_buch = neues_buch;}
//Datensatz einlesen
eingabe ( neues_buch);
vorheriges_buch = neues_buch; break;}
//Suche aufrufen
case 2: suche ( erstes_buch); break;
//Alle Buecher ausgeben
case 3: ausgabeAlle ( erstes_buch); break;
//Ein Buch loeschen
case 4: erstes_buch = loeschen ( erstes_buch);}} while ( wahl!
Einfach Verkettete Listen C.M
Kompletten Quellcode downloaden:
Unsere Implementierung funktioniert zwar, ist aber bei Weitem nicht optimal. Zum Beispiel ist die Liste auf eine feste Datenstruktur festgelegt. Man bräuchte also für verschiedene Datenstrukturen unterschiedliche Listenklassen, was selbstverständlich nicht akzeptabel ist. Des Weiteren ist das Löschen sehr langsam, weil für jedes Listenelement die ganze Liste durchgelaufen werden muss. Allgemein kann man diese Implementierung nur bedingt in der Praxis einsetzen. Sie verdeutlicht aber die Funktionsweise einer verketteten Liste. Im zweiten Teil des Tutorials implementieren wir eine doppelt verkettete Liste. Einfach verkettete listen c.m. Für Kritik, Anregungen, Fragen oder Verbesserungsvorschläge steht wie immer die Kommentarfunktion zu Verfügung. Referenz:
Anfügen eines Elementes
Um ein Element hinter ein anderes Element einzufügen, muss man lediglich ein neues Element erzeugen und dem Vorgänger-Element mitteilen, wo die Liste weiter geht. Dafür schreiben wir uns eine Funktion. Dynamische Datenstrukturen – Einfach verkettete Liste | virtual-maxim. struct AddressNode * NewNode ( struct AddressNode * prevNode)
struct AddressNode * newNode = ( struct AddressNode *) malloc ( sizeof ( struct AddressNode));
newNode - > Next = NULL;
if ( prevNode)
prevNode - > Next = newNode;
return newNode;}
Wird als Argument NULL übergeben, erhalten wir eine einzelne Node, die keinen Nachfolger hat. NewNode() eignet sich also auch, um eine Liste zu beginnen. Einfügen eines Elementes
Möchte man ein Element innerhalb einer Liste einfügen, so muss nicht nur der Vorgänger verändert werden, sondern auch die neue Node erhält einen Nachfolger. Hierfür muss NewNode noch etwas verändert werden. newNode - > Next = prevNode - > Next;
prevNode - > Next = newNode;}
else
Entfernen eines Elementes
Ein großer Vorteil von Listen besteht darin, dass man Elemente jederzeit entfernen kann und kein Loch im Datensatz erhält.
Mit diesem Arbeitsblatt erhalten die Schüler/innen eine Schritt für Schritt Anleitung zum Mikroskopieren der Wasserpest. Die Wasserpest bietet den Vorteil, dass nicht mehrere Zellschichten übereinandergelagert sind und so ein einfaches Arbeiten und schnelles Ergebnis erzielt werden kann, ohne die Schüler/innen zu frustieren. Datei:Anleitung für mikroskopische Zeichnungen.pdf – ZUM-Unterrichten. Sie erkennen dann die Besonderheit der sich bewegenden Chloroplasten, sollen diese beschreiben und zeichnen. Fachspezifische Arbeitsweisen und damit gekoppelt neue Erkenntnisse durch das fachliche Arbeiten, stehen hier im Vordergrund.
M9: Mikroskopieren Einer Pflanzlichen Zelle &Ndash; Am Beispiel Der Zwiebelhaut
Menschliche Niere
Siehe auch
Dauerpräparate zum Mikroskopieren
Aufbau eines Mikroskops (inkl. Arbeitsblatt)
Vergrößerung eines Mikroskops berechnen
* Hinweis zu den Amazon-Partnerlinks
Die Preise verlinken auf die jeweilige Amazon-Produktseite (sog. Partnerlink). Dabei wird über die URL ein Hinweis auf diese Seite als Quelle übertragen (" lichtmikroskop-21 "). M9: Mikroskopieren einer pflanzlichen Zelle – am Beispiel der Zwiebelhaut. Wenn Sie das
Produkt nun kaufen, erhält der Betreiber dieser Seite eine sog. Werbekostenerstattung von
Amazon. Das Produkt kostet genauso viel wie sonst.
Datei:anleitung Für Mikroskopische Zeichnungen.Pdf – Zum-Unterrichten
Mikroskop Aufbau, Bestandteile
Wie geht Mikroskopieren? Diese Frage stellen sich insbesondere oft Schüler, aber auch für alle Einsteiger gilt: es gibt einen festen Ablauf bei Mikroskopieren, den man stets beachten sollte, bis man ihn verinnerlicht hat. Transport
Man trägt das Mikroskop am Stativ, an dem alle Teile des Mikroskops befestigt sind. Achtung: ein gutes Mikroskop ist relativ schwer und wiegt ein paar Kilo. Daher kann man es am besten tragen, indem man es mit einer Hand am Stativ hochhebt und den Mikroskopfuß dann auf die andere Hand setzt. Immer bedenken: ein gutes Mikroskop ist sehr teuer. Außerdem kann man sich verletzen, wenn es einem auf den Fuß fällt. Mikroskopische zeichnung wasserpest. Vorbereitung
Nachdem man die Schutzhülle vorsichtig nach oben abgezogen hat, wickelt man das Kabel ab und steckt den Stecker in eine Steckdose. Beleuchtung einschalten / wenn mit Spiegel, dann Lichtquelle suchen und Spiegel in geeignet Position drehen
Objektivrevolver so drehen, dass das kleinste Objektiv einrastet (geringste Vergrößerung, meist 4x).
5 Schreibe die richtigen Wörter in die Felder! Schwierigkeitsgrad 1 bearbeitet bitte bis zur achten Lücke im Text, Schwierigkeitsgrad 2 bearbeitet bitte den gesamten Lückentext. Fast alle lebenden Organismen bestehen aus Zellen. Wir unterscheiden zwischen Zellen mit Zellkern und ohne Zellkern. Pflanzliche Zellen besitzen einen Zellkern. Sie haben außen eine Stadtmauer, die Zellwand, die für Schutz und Festigkeit sorgt. Innen besitzt der Bürgermeister, der Zellkern, die gesamte Information für die Zelle. Der Große Teich, die Vakuole, sorgt für den Innendruck und somit für die Stabilität der Zelle. Die grüne Farbe bekommt die Zelle von den Chloroplasten, welche für die Photosythese der Pflanzen verantwortlich sind. Alle diese Bestandteile der Zelle schwimmen im sogenannten Cytoplasma, dem Zellsaft. Das Postamt der Zelle, der Golgi-Apparat, befindet sich meist in direkter Nähe zum Zellkern. Dort werden Protein in Briefumschläge, den sogenannten Vesikeln verpackt und an ihren Bestimmungsort verschickt.