Динамичка структура-редови

Радио: Милошевић Стефан


РЕД

Ред је линеарна листа из које први “излази“ (уклања се) елемент који је први и “ушао“(који је први у листу уписан).Нови елемент се уписује на крај реда.Зато је, поред показивача на почетак реда (“врх“) потребан и показивач на крај реда (“крај“) Ред је такозвана FIFO структура(First in First out)

Са редом су повезане три операције:

1.Стајање у ред-уношењеновог елемента:формира се нови чвор са вредношћу а, а показивач предходно последњег елемента у реду, као и показивач на крај реда, постављају се на ново унети елемент 

Уношење новог елемента у низ

2.Излазак из реда- итбацивање елемната из реда:глава листе која представља ред се уклања, а нова глава листе постаје следећи елемент.

Уклањање елемената из реда

3.Читање вредности са почетка реда: b=vrh-> вредност

У C-u се структура може реализовати следећим дефиницијама структура:

Struct elreda {
Int sadrzaj;
Struct elreda *veza;
} *vrh, *kraj;

Размотримо пример коришћења структуре реда.

Написати функције за упис елемената у ред и испис из реда, и главну функцију која, коришћењем ових функција, учитава целе бројеве са стандардног улаза (бар 1, до појаве 0) и исписује их у истом поретку на стандардни излаз.

/* uired: upis u red I ispis iz reda *\
#include<stdio.h>
#include<stdio.h>
Struct elreda {
Int sadrzaj;
Struct elreda *veza;
} *vrh, *kraj;
void upis(int);
int ispis(void);
int x;
main()
{
vrh=NULL;
kraj=NULL;
do {
scanf(“%d“, &x);
upis(x);
} while(x);
do {
printf(“%d\n”, ispis());
} while(vrh!=kraj);
}
void upis(int x)
{
struct elreda *p;
p=malloc(sizeof(*p));
p->sadrzaj=x;
p->veza=NULL;
if(vrh!=NULL) kraj->veza=p;
}
Int ispis(void)
{
Struct elreda *p;
x=vrh->sadrzaj;
p=vrh;
vrh=vrh=>veza;
free(p);
return(x);
}

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s