Радио: Милошевић Стефан
РЕД
Ред је линеарна листа из које први “излази“ (уклања се) елемент који је први и “ушао“(који је први у листу уписан).Нови елемент се уписује на крај реда.Зато је, поред показивача на почетак реда (“врх“) потребан и показивач на крај реда (“крај“) Ред је такозвана 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); }