Upload
ante-dilber
View
4
Download
1
Embed Size (px)
DESCRIPTION
Lekcija o stogovima iz kolegija algoritmi i strukture podataka
Citation preview
Stog je niz za ije lanove vrijedi pravilo FIFO to bi znailo First In First Out to e rei da kada dodajemo novi lan u stog svi ostali lanovi se pomjeraju za jedno mjesto tako da je novi lan uvijek na vrhu a onaj koji prvi ue on je uvijek na dnu. I kada se ispisivaju na zaslon, ispisivaju se naopake osim ako ne radimo ispis unatrag. Sve radnje sa stogovima se vre u zasebnim funkcijama.
Zadatak1.Napisati program koji e u inicijalizirati stog u kojeg moe stati 20 elemenata zatim u zasebnoj funkciji unijeti 3 elementa u taj stog te ga ispisati u glavnom programu pozivajui zasebnu funkciju.
Rjeenje
#include
( *vrh )++;
stog [ *vrh ] = broj;
void push ( int broj , int stog [] , int *vrh ) {
}
if ( *vrh < 0 ) return 0;
*broj = stog [ *vrh ];
( *vrh )--;
return 1;
int pop ( int *broj , int stog [] , int *vrh ) {
}
int tmp_stog [ 20 ];
int tmp_vrh = -1;
int tmp;
printf ( " %d \n " , tmp );
push ( tmp , &tmp_stog , &tmp_vrh );
while ( pop ( &tmp , stog , vrh) ) {
}
push ( tmp , stog , vrh );
while ( pop ( &tmp , &tmp_stog , &tmp_vrh ) ) {
}
void ispis ( int stog [] , int *vrh ) {
}
Stog10. sijenja 2015. 20:51
Algoritmi i strukture podataka Stranica 1
}int stog [ 20 ];
int vrh = -1;
push ( 1 , &stog , &vrh );push ( 8 , &stog , &vrh );push ( 15 , &stog , &vrh );
ispis( &stog , &vrh );
return 0;
int main(void) {
}
Zadatak2.Napisati program koji e unijeti proizvoljne elemente u stog , u zasebnoj funkciji nai zbroj tih elemenata te ga ispisati na zaslon u glavnom programu.
Rjeenje
#include
( *vrh )++;stog [ *vrh ] = broj;
void push ( int broj , int stog [] , int *vrh ) {
}
if ( *vrh < 0 ) return 0;*broj = stog [ *vrh ];( *vrh )--;return 1;
int pop ( int *broj , int stog [] , int *vrh ) {
}
int suma = 0;int tmp_stog [20];int tmp_vrh = -1;int tmp;
suma = suma + tmp;push ( tmp , &tmp_stog , &tmp_vrh );
while ( pop ( &tmp , stog , vrh ) ) {
}
push ( tmp , stog , vrh );
while ( pop ( &tmp , &tmp_stog , &tmp_vrh ) ) {
}
int suma ( int stog [] , int *vrh ) {
Algoritmi i strukture podataka Stranica 2
return suma;
}
int zbroj;int stog [20];int vrh = -1;
push ( 8 , &stog, &vrh );push ( 5 , &stog, &vrh );push ( 2 , &stog, &vrh );push ( 14 , &stog, &vrh );push ( 18 , &stog, &vrh );
zbroj = suma ( &stog , &vrh );
printf ( " Zbroj elemenata u stogu je: %d " , zbroj );
return 0;
int main(void) {
}
Zadatak3.Napisati program u kojemu se inicijalizira stog sa proizvoljnim elementima a program ispisuje sve elemente koji su vei od 6
Rjeenje
#include
( *vrh )++;stog [ *vrh ] = broj;
void push ( int broj , int stog [] , int *vrh ) {
}
if ( *vrh < 0 ) return 0;*broj = stog [ *vrh ];( *vrh )--;return 1;
int pop ( int *broj , int stog [] , int *vrh ) {
}
int tmp_stog [50];int tmp_vrh = -1;int tmp;
printf ( " %d \n " , tmp);push ( tmp , &tmp_stog , &tmp_vrh );
while ( pop ( &tmp , stog , vrh ) ) {
}
void ispis ( int stog [] , int *vrh ) {
Algoritmi i strukture podataka Stranica 3
push ( tmp , stog , vrh );
while ( pop ( &tmp , &tmp_stog , &tmp_vrh ) ) {
}}
int tmp_stog [50];int tmp_vrh = -1;int tmp;
push ( tmp , &tmp_stog , &tmp_vrh );
if ( tmp >= 6 ) {
}
while ( pop ( &tmp , stog , vrh ) ) {
}
push ( tmp , stog , vrh );
while ( pop ( &tmp , &tmp_stog , &tmp_vrh ) ) {
}
void manje_od ( int stog [] , int *vrh ) {
}
int stog [50];int vrh = -1;
push( 2 , &stog , &vrh );push( 5 , &stog , &vrh );push( 8 , &stog , &vrh );push( 12 , &stog , &vrh );push( 3 , &stog , &vrh );
printf ( " Elementi stoga su: \n " );
ispis ( &stog , &vrh );
printf ( " Elementi vei od 6 su: \n ");
manje_od ( &stog , &vrh );
ispis ( &stog , &vrh );
return 0;
int main(void) {
}
Algoritmi i strukture podataka Stranica 4