Naloga 1
Podan je bil straightinsertion, spremenit ga je bilo treba, da je sortiral tabelo int[][].
Po sortiranju bi morala izgledati takole
1 2 3
4 5 6
7 8 9
Naloga 2
Simuliranje sortiranja s kopico, izgradnja in pogrezanje.
Naloga 3
Podan nek razred arrayqueue<>. nato si moral izpeljati podrazred,ki ima elemente urejene po velikosti (uporabi metodo x.manjsi).
Rešitev
public class UrejenaVrsta<T extends Comparable>
{
private Vector<T> skladisce;
public UrejenaVrsta()
{
skladisce = new Vector<T>();
}
public void dodaj(T o)
{
int stevec = 0;
for (T i : skladisce)
{
if (o.compareTo(i) < 0)
{
break;
}
stevec++;
}
skladisce.add(stevec, o);
}
public boolean prazna()
{
return skladisce.size() == 0;
}
public T dobi()
{
if (prazna())
{
return null;
}
else
{
T el = skladisce.get(0);
skladisce.remove(0);
return el;
}
}
}
public class Main
{
public static void main(String[] args)
{
UrejenaVrsta<Integer> vrsta = new UrejenaVrsta<Integer>();
vrsta.dodaj(15);
vrsta.dodaj(10);
vrsta.dodaj(20);
vrsta.dodaj(25);
vrsta.dodaj(25);
vrsta.dodaj(12);
vrsta.dodaj(1);
vrsta.dodaj(2);
vrsta.dodaj(3);
while (!vrsta.prazna())
{
System.out.println(vrsta.dobi());
}
}
}
Naloga 4
Imas razlicne objekte shranjene v vektor<vektor>. nekako tako:
v=[("Ana",1,'c'),("Joza","Ana"),(1,6,"Franc),.... ]
Potem si moral napisati metodo vrni(v,n) (v je vektor, n je stevilo pojavitev), ki ti je vracala vektor,ki vsebuje objekte,ki se pojavijo n-krat v vektorjih.
recimo vrni(v,2) bi v zgornjem primeru vrnala vektor: ("Ana") - ker se le ta objekt pojavi 2x v vseh vektorjih (nekaj takega no).
se en primer:
npr v=[(2,a),(j,a),(2,m,p)]
izpisi(v,2)
izpise a,2
a se pojavi 2x in 2 se pojavi 2x
Rešitev
package pojavitve;
import java.util.*;
class Pojavitve
{
private Vector<Vector<Object>> v;
public Pojavitve(Vector<Vector<Object>> v)
{
this.v = v;
}
public Vector<Object> vrni(int p)
{
Vector<Object> rez = new Vector<Object>();
for (Vector<Object> trenutni : v)
{
for (Object trenutniO : trenutni)
{
if (!rez.contains(trenutniO))
{
if (prestej(trenutniO) == p)
{
rez.add(trenutniO);
}
}
}
}
return rez;
}
private int prestej(Object o)
{
int rez = 0;
for (Vector<Object> trenutni : v)
{
for (Object trenutniO : trenutni)
{
if (trenutniO.equals(o))
{
rez++;
}
}
}
return rez;
}
}
public class Main
{
public static void main(String[] args)
{
Vector<Vector<Object>> v = new Vector<Vector<Object>>();
Vector<Object> v1 = new Vector<Object>();
v1.add("vojko");
v1.add(1);
v1.add("peter");
v1.add(2);
Vector<Object> v2 = new Vector<Object>();
v2.add("miranda");
v2.add("jutri");
v2.add("peter");
v2.add(2);
Vector<Object> v3 = new Vector<Object>();
v3.add(2);
v.add(v1);
v.add(v2);
v.add(v3);
Pojavitve p = new Pojavitve(v);
Vector<Object> vp = p.vrni(2);
}
}
Naloga 5
a) Izgradnja BST drevesa (elementi so bile crke)
b) Popravit je bilo treba itreator enega izmed razredov tree, ki je po BSTju izpisal elemente od najvecjega do najmanjsega, tako da jih je potem od najmanjsega do najvecjega.