\documentclass[a4paper]{article}
\usepackage[cm]{fullpage}
\usepackage[serbian]{babel}
\usepackage[table]{xcolor}
\usepackage{graphicx,amsmath}
\usepackage{bbm}

\def\d{{\fontencoding{T1}\selectfont\dj}}
\def\D{{\fontencoding{T1}\selectfont\DJ}}

\newtheorem{z}{Zadatak}

\title{Blok 3 - Jednostruko povezane i kru\v{z}ne liste}
\date{}

\begin{document}
\maketitle

\emph{Napomena:} Pri re\v{s}avanju slede\'cih zadataka, iskoristiti biblioteku za rad sa listama koja je radjene na prethodnim \v{c}asovima. Biblioteka se nalazi u nastavnim materijalima. Gde god je mogu\'ce preferirajte
rekurzivni na\v{c}in re\v{s}avanja. 

\begin{z} (5 poena) 
Napisati funkciju koja odre\dj uje du\v{z}inu une\v{s}ene liste: \verb|int duzina(EL* plist)|. Test primer:

\begin{verbatim}
6 2 4 7 2 6 19 3 5 -1
9
\end{verbatim}
\end{z}

\begin{z} (10 poena) 
Napisati funkciju koja pravi listu od cifara zadatog broja: \verb|EL* lista_od_broja(int n)|. Test primer:

\begin{verbatim}
4232323
pravi listu: 4->2->3->2->3->2->3->NULL
i ispisuje je: 4 2 3 2 3 2 3
\end{verbatim}
\end{z}

\begin{z} (10 poena) 
Spojiti dve sortirane liste unete sa ulaza u tre\'cu listu koja je tako\dj e sortirana: \\ \verb|EL* spoji_sortirano(EL* plist1, EL* plist2)|. Dozvoljen je samo jedan prolaz kroz unete liste (Napomena: zadatak je sli\v{c}an onom sa \v{c}asa u kojem su se liste spajale uplitanjem). Test primer:

\begin{verbatim}
1 3 4 7 19 78 198 -1
1 2 2 5 6 7 18 29 200 -1
1 2 2 3 4 5 6 7 18 19 29 78 198 200
\end{verbatim}
\end{z}

\begin{z} (10 poena)
Napisati rekurzivnu funkciju koja elimini\v{s}e duplikate iz zadate liste: \\ \verb|EL* eliminisi_duplikate(EL* plist)|. Test primer:

\begin{verbatim}
2 46  6 3 6 2 6 8 2 1 3 5 8 -1
2 46 6 3 8 1 5
\end{verbatim} 
\end{z}

\begin{z} (10 poena)
Na ulazu su dve liste. Napraviti \emph{novu} tre\'cu listu takvu da sadr\v{z}i zajedni\v{c}ke elemente date dve liste \verb|EL* presek(EL* plist1, EL* plist2)|. (Napomena: praviti nove elemente za tre\'cu listu, ne prespajati postoje\'ce). Test primer:

\begin{verbatim}
5 6 2 3 6 4 8 5 27 -1
7 3 4 2 7 9 4 2 7 -1
3 4 2
\end{verbatim}
\end{z}

\begin{z} (15 poena)
U\v{c}itati listu, napraviti od nje kru\v{z}nu, i potom napraviti funkciju: \\ \verb|void ubaci_zbir_prethodnih_k(EL* plist, int k)|, koja cikli\v{c}no prolazi kroz k elemenata i potom na aktivnoj poziciji ume\'ce element koji ima vrednost zbira tih k elemenata. Program se zaustavlja nakon
\v{s}to upi\v{s}e 10 vrednosti na ovaj na\v{c}in. Test primer:

\begin{verbatim}
5 6 3 -1
2 //k
5 6 11 3 //posle prvog upisa (5+6=11)
5 8 6 11 3 //drugi upis (3+5=8)
5 8 6 11 17 3 //treci upis (6+11=17)
... 
\end{verbatim}
\end{z}

\end{document}

