Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte štruktúru uzla dát a štruktúry zoznamu . K tomu , aby Google zoznamu fungovať ako frontu , zoznam musí obsahovať uzly schopné odkazovanie na ďalšie uzol v zozname a dvoch ukazovateľov , ktoré odkazujú na začiatok a koniec zoznamu . Tieto príklady štruktúry vykazujú základné šablónu pre zoznam uzlov a štruktúre frontu :
struct node {
int dát ;
struct * Node ďalšie ;
} ;
struct queue_list {
struct * node prvý , //ukazovateľ na prvú položku
struct * node posledný , //ukazovateľ na poslednú položku
}
2
Zaviesť vloženie dát algoritmus . Vo fronte , program by mal vždy pridať dáta na koniec zoznamu . Okrem toho musí byť v zozname odkaz na posledný prvok , takže budúce inzercia vedieť , na ktoré nakoniec pripojiť . Nasledujúci príklad ukazuje jednoduchý algoritmus pripojiť uzol s dátami na fronte :
void insert ( struct * frontu q , int value ) {
struct uzol * newnode = malloc ( sizeof ( struct node ) ) ;
newnode - > data = hodnota ;
newnode - > next = NULL ;
if ( q - > Prvý == NULL ) {
q - > prvej = q - > last = newnode ; //ak je zoznam prázdny , prvý a posledný = newnode
}
else {
q - > last- > next = newnode ; //pripojiť newnode po poslednom prvku
q - > posledný = posledný - > ďalšie , //bod " posledný " ukazovateľ nový uzol
}
}
3
Zaviesť odstránenie algoritmus . Tento algoritmus bude mať hodnotu od prvého uzla v zozname. Potom to bude ukazovať na " prvý " ukazovateľ na ďalší uzol a odstrániť prvý uzol . To umožní , aby vedľa uzla nový prvú pozíciu v zozname , pripravené na odstránenie . Nasledujúci príklad ukazuje algoritmus , ako to dosiahnuť :
int odstrániť ( struct * frontu q ) {
int hodnota = q - > first - > data ;
struct uzol * temp = q - > prvý ,
q - > prvej = q - > first - > ďalšie , //posunie na prvý ukazovateľ na ďalšiu položku
zadarmo ( temp ) ; //odstráni starú prvý uzol
vrátiť hodnotu ; //vráti prvú hodnotu ;
}
4
deklarovať a používať front. Programátor môže vyhlásiť front ako premenné typu " struct frontu " a pomocou definované funkcie pridať a odstrániť položky . Nasledujúci príklad ukazuje, ako deklarovať a používať štruktúru frontu :
int main ( ) {
struct fronta q ;
vložiť ( & q , 5 ) , //použitie odkaz na " q " , aby sa zabránilo plytké kópie
Insert ( & Q , 6 ) ;
int x = odstránenie ( & q ) ; //x = 5