АСП1/К2 2016 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Dodate postavke ostalih zadataka)
Ред 57: Ред 57:
  '''end_while'''
  '''end_while'''
  '''return''' false
  '''return''' false
== 3. zadatak ==
=== Postavka ===
Dekodovati poruku 0 1 3 3 4 5 4 9 primenom LZW algoritma, za dati početni sadržaj tabele simbola.
=== Rešenje ===
* Dekodovana poruka:
* Tablica kodova:
{| class="wikitable"
! Simbol
! Kôd
|-
| A
| 0
|-
| B
| 1
|-
| C
| 2
|-
|}
== 4. zadatak ==
=== Postavka ===
Ukoliko je usmereni graf sa ''n'' čvorova predstavljen listom susednosti, napisati u pseudokodu funkcije za izračunavanje ulaznog i izlaznog stepena zadatog čvora ''i''.
=== Rešenje ===
<u>VERTEX IN DEG(''G'', ''n'', ''i'')</u>
<u>VERTEX OUT DEG(''G'', ''n'', ''i'')</u>
== 5. zadatak ==
=== Postavka ===
Korišćenjem dinamičkih Huffman-ovih kodova, kodirati sekvencu simbola CBCBDAAABABA, ako se simboli A, B, C i D kodovima fiksne dužine kodiraju sa po dva bita 00, 01, 10, 11, respektivno
=== Rešenje ===
== 6. zadatak ==
=== Postavka ===
Dato je binarno stablo ''B'', na čiji koren pokazuje pokazivač ''root''. Stablo ''B'' dobijeno je konverzijom m-arnog stabla ''T'' u odgovarajuće binarno. Napisati u pseudokodu '''iterativnu''' funkciju koja određuje red stabla T.
=== Rešenje ===
<u>TREE ORDER BIN(''root'')</u>
== 7. zadatak ==
=== Postavka ===
Pitanja:
<div class="abc-list">
# Komentarisati strategiju obrade istih prioriteta u prioritetnom redu primenjenom u statičkom ''Huffman''-ovom algoritmu.
# Kolika je minimalna, a kolika maksimalna dubina steka korišćenog u iterativnoj realizaciji ''preorder'' obilaska binarnog stabla sa n čvorova. Nacrtati takva stabla.
</div>
=== Rešenje ===
== 8. zadatak ==
=== Postavka ===
Dato je binarno stablo <u>povezano</u> po ''inorder''-u. Napisati i objasniti pseudokod algoritma obilaska po '''inverznom''' ''inorder'' poretku.
=== Rešenje ===
<u>INVERSE INORDER T(''root'')</u>

Верзија на датум 5. април 2020. у 15:56

Zadaci

1. zadatak

Postavka

Na slici je dato jedno nekompletno prikazano binarno stablo (desno. Ukoliko preorder obilazak takvog stabla daje poredak čvorova ACBDFE, nacrtati sve moguće izglede ovog stabla.

   A
 /   \
C     ...
 \
  B

Rešenje

Pogledajmo najpre obilazak A CB DFE

Levi deo je kompletan i D mora biti koren desnog podstabla. Odatle dolaze kombinacije:

   A          A          A          A          A
 /   \      /   \      /   \      /   \      /   \
C     D    C     D    C     D    C     D    C     D
 \   / \    \   /      \   /      \     \    \     \
  B F   E    B F        B F        B     F    B     F
              /            \              \        /
             E              E              E      E

2. zadatak

Postavka

Napisati u pseudokodu funkciju koja u binarnom stablu na čiji koren pokazuje pokazivač root utvrđuje da li postoji čvor čija pozicija u stablu (u odnosu na koren) je simetrična u odnosu na poziciju čvora na koji pokazuje pokazivač node. Smatrati da svaki čvor binarnog stabla pored informacionog sadržaja sadrži pokazivače na levo i desno podstablo i pokazivač na roditeljski čvor.

Rešenje

Rešenje se sastoji od toga da se vratimo unazad, pamteći put, i onda silazimo opet ali obrnutim putem. Ukoliko se isprazni ulančana lista (koja glumi stek), to znači da postoji simetrični član.

CHECK_SYMMETRIC(root, node)
path = nil
while noderoot do
    step = GETNODE
    parent = parent(node)
    if left(parent) = node then
        info(step) = 0
    else
        info(step) = 1
    end_if
    node = parent
    next(step) = path
    path = step
end_while
while node ≠ nil do
    if path = nil then
        return true
    end_if
    if info(path) = 0 then
        node = right(node)
    else
        node = left(node)
    end_if
    step = path
    path = next(path)
    FREE(step)
end_while
return false

3. zadatak

Postavka

Dekodovati poruku 0 1 3 3 4 5 4 9 primenom LZW algoritma, za dati početni sadržaj tabele simbola.

Rešenje

  • Dekodovana poruka:
  • Tablica kodova:
Simbol Kôd
A 0
B 1
C 2

4. zadatak

Postavka

Ukoliko je usmereni graf sa n čvorova predstavljen listom susednosti, napisati u pseudokodu funkcije za izračunavanje ulaznog i izlaznog stepena zadatog čvora i.

Rešenje

VERTEX IN DEG(G, n, i)

VERTEX OUT DEG(G, n, i)

5. zadatak

Postavka

Korišćenjem dinamičkih Huffman-ovih kodova, kodirati sekvencu simbola CBCBDAAABABA, ako se simboli A, B, C i D kodovima fiksne dužine kodiraju sa po dva bita 00, 01, 10, 11, respektivno

Rešenje

6. zadatak

Postavka

Dato je binarno stablo B, na čiji koren pokazuje pokazivač root. Stablo B dobijeno je konverzijom m-arnog stabla T u odgovarajuće binarno. Napisati u pseudokodu iterativnu funkciju koja određuje red stabla T.

Rešenje

TREE ORDER BIN(root)

7. zadatak

Postavka

Pitanja:

  1. Komentarisati strategiju obrade istih prioriteta u prioritetnom redu primenjenom u statičkom Huffman-ovom algoritmu.
  2. Kolika je minimalna, a kolika maksimalna dubina steka korišćenog u iterativnoj realizaciji preorder obilaska binarnog stabla sa n čvorova. Nacrtati takva stabla.

Rešenje

8. zadatak

Postavka

Dato je binarno stablo povezano po inorder-u. Napisati i objasniti pseudokod algoritma obilaska po inverznom inorder poretku.

Rešenje

INVERSE INORDER T(root)