Wie man eine Warteschlange-Funktion in der C-Syntax

September 29

Programmierer verwenden Warteschlangen, um Datenstrukturen, die Arbeiten vom First In, First Out (FIFO) Leitlinie zu vertreten. Das bedeutet, alle Daten in der Struktur eingegeben werden auf eine Liste mit Daten, und die Daten, die in der Liste der längsten wurde werden die ersten entfernt werden. In der Programmiersprache C implementiert die besten Programmierer eine Grundform dieser Struktur unter Verwendung einer verknüpften Liste und verschiedenen Zeigern zur Aufrechterhaltung der Ordnung der Daten.

Anweisungen

1 Erstellen Sie die Datenstruktur der Knoten und die Listenstruktur. Damit für die verknüpfte Liste in Funktion als Warteschlange muss die Liste enthalten Knoten fähig verweisen auf den nächsten Knoten in der Liste und zwei Zeiger, die den Anfang und das Ende der Liste verweisen. Diese Beispielstrukturen zeigen eine grundlegende Vorlage für die Liste der Knoten und die Warteschlange-Struktur:

Struct Knoten {}

Int-Daten;

Struct * Knoten weiter;

};

Struct Queue_list {}

Struct * Knoten erste; Zeiger auf das erste Element

Struct * Knoten letzte; Zeiger auf das letzte Element

}

2 Implementieren eines Data-Einfügung-Algorithmus. In einer Warteschlange sollte das Programm die Daten immer am Ende der Liste anfügen. Darüber hinaus muss die Liste das letzte Element verweisen, damit zukünftige Einfügungen auf deren Ende anfügen wissen. Das folgende Beispiel zeigt einen einfachen Algorithmus, die einen Knoten mit Daten auf eine Warteschlange angefügt:

void Insert (Struct * Warteschlange Q, intvalue) {}

Struct * Knoten Newnode = Malloc (Sizeof (Struct Knoten));

-> NewNode = Value;

NewNode -> weiter = NULL;

Wenn (Q -> ersten == NULL) {}

Q -> ersten = q-> last = Newnode; Wenn die Liste leer ist, = erste und letzte newnode

}

Else {}

Q > Letzte - > next = Newnode; hängen Sie Newnode letzte element

Q -> Letzte = -> zuletzt weiter; zeigen Sie "letzte" Zeiger auf den neuen Knoten

}

}

3 Implementieren Sie einen Algorithmus entfernen. Dieser Algorithmus wird den Wert aus dem ersten Knoten in der Liste erfolgen. Dann wird den "ersten" Zeiger auf den nächsten Knoten zeigen und den ersten Knoten löschen. Das macht die neue erste Position auf der Liste, bereit zum Entfernen dem nächsten Knoten. Das folgende Beispiel zeigt einen Algorithmus, um dies zu erreichen:

Int zu entfernen (Struct * Warteschlange Q) {}

Int-Wert = Q - > -> zuerst Daten;

Struct * Knoten Temp = Q -> ersten;

Q -> ersten = Q - > -> zunächst weiter; der ersten Mauszeiger bewegt sich zum nächsten Element

Free(Temp); Löscht den alten ersten Knoten

Rückgabewert; Gibt den ersten Wert;

}

4 Deklarieren Sie und verwenden Sie eine Warteschlange. Der Programmierer kann deklarieren eine Warteschlange als Variable vom Typ "Struct-Warteschlange" und verwenden Sie die definierten Funktionen zum Hinzufügen und Entfernen von Elementen. Das folgende Beispiel zeigt, wie die Deklaration und Verwendung einer Warteschlange-Struktur:

Int main() {}

Struct Warteschlange Q;

Einfügen (& Q, 5); verwendet einen Verweis auf "Q" um flache Kopien zu vermeiden

Einfügen (& Q, 6);

Int x = entfernen (& Q); X = 5