АСП1/Јул 2020 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Ред 77: Ред 77:
=== 1. zadatak ===
=== 1. zadatak ===
==== Postavka ====
==== Postavka ====
Napisati funkciju koja iz datog grafa u matričnoj reprezentaciji i niza čvorova pronalazi sve čvorove grafa nedostižne iz čvorova u datom nizu.
Potrebno je implementirati jednostavan algoritam za pomoć pri brisanju nedostižnih objekata u memoriji kao podrška nekom programskom jeziku (garbage collection). Neka se alocirani objekti u memoriji i njihove veze modeluju usmerenim netežinskim grafom matrične reprezentacije G sa n čvorova. Čvorovi grafa predstavljuju objekte, a grane grafa predstavljaju veze između njih, tako da grana (x,y) modelira postojanje reference u okviru objekta x na objekat y.


Neka je dat niz promenljivih vars dužine n_vars koji pokazuju na objekte i počev od kojih je potrebno proveriti da li se do svih alociranih objekata u nekom programu može doći. Implementirati funkciju GC koja treba da vrati skup svih onih objekata koji su nedostižni iz perspektive početnog skupa promenljivih (vars).
==== Rešenje ====
==== Rešenje ====
  <u>GC(''G'', ''n'', ''vars'', ''nvars'')</u>
  <u>GC(''G'', ''n'', ''vars'', ''nvars'')</u>
Ред 90: Ред 91:
=== 3. zadatak ===
=== 3. zadatak ===
==== Postavka ====
==== Postavka ====
Naći obuhvatno stablo datog grafa '''(?)''' Primovim algoritmom. Da li je obuhvatno stablo jedinstveno? Ako nije, objasniti u kojem koraku se može formirati drugačije obuhvatno stablo.
Na slici je dat težinski neusmeren graf.
 
<div class="abc-list">
# Naći minimalno obuhvatno stablo primenom Primovog algoritma, ako se za početni čvor uzima čvor S. Prikazati redom koje grane se dodaju u obuhvatno stablo.
# Naći minimalno obuhvatno stablo primenom Primovog algoritma, ako se za početni čvor uzima čvor B. Prikazati redom koje grane se dodaju u obuhvatno stablo.
# Ukratko i precizno objasniti da li je prilikom traženja minimalnog obuhvatnog stabla u prethodnim tačkama moglo da se dobije i drugačije minimalno obuhvatno stablo? Ako da, napisati od čega to zavisi i navesti odovarajući korak u kome se to desilo.
</div>
==== Rešenje ====
==== Rešenje ====


Ред 97: Ред 102:
==== Postavka ====
==== Postavka ====
<div class="abc-list">
<div class="abc-list">
# Definisati ekscentričnost čvora i središte grafa.
# Formalno definisati i objasniti pojmove ekscentričnosti čvora i središta grafa i na koji način se oni određuju.
# Napisati pseudokod funkcije koja vraća niz ekscentričnosti svakog čvora grafa iz date matrice najkraćih puteva.
# Napisati u pseudokodu iterativnu implementaciju funkcije koja u grafu sa ''n'' čvorova i poznatom matricom najkraćih rastojanja ''D'' određuje ekcentričnost svih čvorova grafa. Funkcija vraća vektor koji sadrži izračunate ekscentričnosti čvorova.
# Napisati pseudokod funkcije koja nalazi središte grafa iz niza iz prethodne tačke.
# Napisati u pseudokodu iterativnu implementaciju funkcije koja u grafu sa ''n'' čvorova i poznatim ekscentričnostima čvorova u vektoru ''ecc'' određuje središte grafa.
</div>
</div>



Верзија на датум 20. јул 2020. у 14:44

Prvi kolokvijum

1. zadatak

Postavka

Data je retka kvadratna matrica dimenzije 5. Navesti dva načina da se prikaže pomoću ulančanih lista.

Rešenje

2. zadatak

Postavka

Napisati pseudokod za osnovne operacije sa stekom implementiranog pomoću ulančanih lista sa zaglavljem, tako da se u konstantnoj složenosti može dobiti maksimalni element. Dozvoljeno je koristiti još jednu listu.

Rešenje

3. zadatak

Postavka

Prebaciti infiksni izraz A*(B-C)*(A-D!!)+F/G+K u postfiksni i popuniti tabelu ispod.

Operator Ulazni prioritet Stek prioritet Rang
+, - ? ? ?
*, / ? ? ?
! ? ? ?
( ? ? ?
) ? ? ?

Rešenje

4. zadatak

Postavka

Implementirati operacije za dodavanje elemenata na početak i kraj reda implementiranog preko kružnog vektora.

Rešenje

INSERT-BEFORE(Q, value)
INSERT-AFTER(Q, value)

Drugi kolokvijum

1. zadatak

Postavka

  1. Precizno definisati povezana stabla. Koja nova polja se moraju uvesti u normalno stablo kako bi postalo povezano?
  2. Napisati pseudokod funkcije koja prima čvor i izbacuje ga iz stabla povezanog po inorder-u ako je poznato da taj čvor nema levog sina.

Rešenje

2. zadatak

Postavka

Napisati pseudokod funkcije koja za svaki čvor u stablu proverava da li je suma vrednosti svih potomaka tog čvora jednaka vrednosti tog čvora za svaki čvor koji ima potomke.

Rešenje

3. zadatak

Postavka

Dinamički Hafman. (?) Uporediti dužinu karaktera sa dinamičkim Hafmanom i bez njega. (??)

Rešenje

4. zadatak

Postavka

  1. Objasniti postupak konverzije m-arnog stabla u binarno stablo.
  2. Na sledećem primeru m-arnog stabla prikazati postupak konverzije po koracima. (?)

Rešenje

Treći kolokvijum

1. zadatak

Postavka

Potrebno je implementirati jednostavan algoritam za pomoć pri brisanju nedostižnih objekata u memoriji kao podrška nekom programskom jeziku (garbage collection). Neka se alocirani objekti u memoriji i njihove veze modeluju usmerenim netežinskim grafom matrične reprezentacije G sa n čvorova. Čvorovi grafa predstavljuju objekte, a grane grafa predstavljaju veze između njih, tako da grana (x,y) modelira postojanje reference u okviru objekta x na objekat y.

Neka je dat niz promenljivih vars dužine n_vars koji pokazuju na objekte i počev od kojih je potrebno proveriti da li se do svih alociranih objekata u nekom programu može doći. Implementirati funkciju GC koja treba da vrati skup svih onih objekata koji su nedostižni iz perspektive početnog skupa promenljivih (vars).

Rešenje

GC(G, n, vars, nvars)

2. zadatak

Postavka

Definisati jako povezane komponente. Prikazati postupak njihovog nalaženja na sledećem grafu i nacrtati redukovani graf.

Rešenje

3. zadatak

Postavka

Na slici je dat težinski neusmeren graf.

  1. Naći minimalno obuhvatno stablo primenom Primovog algoritma, ako se za početni čvor uzima čvor S. Prikazati redom koje grane se dodaju u obuhvatno stablo.
  2. Naći minimalno obuhvatno stablo primenom Primovog algoritma, ako se za početni čvor uzima čvor B. Prikazati redom koje grane se dodaju u obuhvatno stablo.
  3. Ukratko i precizno objasniti da li je prilikom traženja minimalnog obuhvatnog stabla u prethodnim tačkama moglo da se dobije i drugačije minimalno obuhvatno stablo? Ako da, napisati od čega to zavisi i navesti odovarajući korak u kome se to desilo.

Rešenje

4. zadatak

Postavka

  1. Formalno definisati i objasniti pojmove ekscentričnosti čvora i središta grafa i na koji način se oni određuju.
  2. Napisati u pseudokodu iterativnu implementaciju funkcije koja u grafu sa n čvorova i poznatom matricom najkraćih rastojanja D određuje ekcentričnost svih čvorova grafa. Funkcija vraća vektor koji sadrži izračunate ekscentričnosti čvorova.
  3. Napisati u pseudokodu iterativnu implementaciju funkcije koja u grafu sa n čvorova i poznatim ekscentričnostima čvorova u vektoru ecc određuje središte grafa.

Rešenje