Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako si vyrobiť funkcie fronty v C syntaxe

Programátori používajú fronty predstavujú dátové štruktúry , ktoré fungujú od First In , First Out ( FIFO ) pokynu . To znamená , že všetky dáta zadané do štruktúry budú pridávať do zoznamu dát , a dáta, ktorá bola v zozname najdlhšia bude najprv treba odstrániť . V programovacom jazyku C , programátor najlepšie implementuje základný tvar tejto štruktúry pomocou spojovaceho zoznamu a rôzne ukazovatele zachovať poradie dát . Pokyny dovolená 1

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


Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené