algoritmet dhe struktura e të dhënavebst (binary search trees) prishtinë, 2015/2016...

18
Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Algoritmet dhe struktura e dhënave Vehbi Neziri FIEK, Prishtinë 2015/2016

Upload: others

Post on 29-Jan-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

  • Universiteti i Prishtinës

    Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike

    Algoritmet dhe struktura e të dhënave

    Vehbi Neziri

    FIEK, Prishtinë 2015/2016

  • Prishtinë, 2015/2016 ©vehbineziri.com 2

    Java 11

    • Pemët

    • Pema binare e kërkimit

    • Pemët e balancuara

    • Pemët kuq e zi

  • BST (Binary Search Trees)

    Prishtinë, 2015/2016 ©vehbineziri.com 3

    • Rregulla e ruajtës në BST• Të gjitha vlerat në nën pemën e majtë janë më të vogla se nyja rrënjë

    • Të gjitha vlerat në nën pemën e djathtë janë më të mëdha ose tëbarabarta me vlerën në nyjën rrënjë

    • Ky rregull zbatohet në mënyrë rekursive për secilën nga dy nënpemët.

  • BST (Binary Search Trees)

    Prishtinë, 2015/2016 ©vehbineziri.com 4

    • Vetitë e BST

    – Vlera në nyje

    • Vlerat e vogla në nën pemën e majtë

    • Vlerat e mëdha në nën pemën e djathtë

    – Shembull

    • Y < X < Z

    Y

    X

    Z

  • BST (Binary Search Trees)

    Prishtinë, 2015/2016 ©vehbineziri.com 5

    5

    10

    30

    2 25 45

    5

    10

    30

    2

    25

    45 5

    10

    45

    2 25 30

    25

  • Pemët e balancuara

    Prishtinë, 2015/2016 ©vehbineziri.com 6

    • Pemët e balancuara

    • Pema binare është e balancuar nëse numri i nyjave të nën pemës së

    majtë dhe të djathtë dallojnë më së shumti për 1, pra për secilën nyje

    të pemës lartësia e nën pemës së majtë dhe të djathtë dallon më së

    shumti për 1.

    E balancuar E pa balancuar

  • Shembull 11.1

    Prishtinë, 2015/2016 ©vehbineziri.com 7

    o Të shkruhet funksioni eBalancuardhe duke përdorur edhe funksionetnë shembullin 10.5 të kontrollohetnëse pema është e balancuar apo jo.

  • Shembull 11.2

    Prishtinë, 2015/2016 ©vehbineziri.com 8

    o Nëse dihet kodi për një BST, tëshkruhen funksionet për gjetjen enyjës si dhe për gjetjen e prindit përvlerën e cila ruhet në një nyje tëcaktuar.

    Nyja* gjejNyjeSipasVleres(char vlera);Nyja* gjejPrindinPerNyjen(char vlera);

  • Largimi/fshirja e nyjës

    Prishtinë, 2015/2016 ©vehbineziri.com 9

    • Algoritmi

    1. Kërko për vlerën X

    2. Nëse X është gjethe, largo X

    3. Përndryshe

    a) Zëvendëso vlerën më të madhe Y në nën pemën e majtë OSE vlerën më të vogël Z në nën pemën e djathtë

    b) Largo vlerën e zëvendësuar (Y ose Z) nga nën pema.

  • • Largo nyjën me vlerën 25

    5

    10

    30

    2 25 45

    25 > 10, djathtas

    25 < 30, majtas

    25 = 25, largo

    5

    10

    30

    2 45

    Largimi i gjethes

    Prishtinë, 2015/2016 ©vehbineziri.com 10

  • 5

    10

    30

    2 25 45

    5

    5

    30

    2 25 45

    2

    5

    30

    2 25 45

    Zëvendëso 10 me vlerën më të madhe

    në të majtë

    Zëvendëso 5 me vlerën më të madhe

    në të majtë

    Largo gjethen

    Largimi i nyjës – mundësia 1

    • Largo nyjën me vlerën 10

    Prishtinë, 2015/2016 ©vehbineziri.com 11

  • 5

    10

    30

    2 25 45

    5

    25

    30

    2 25 45

    5

    25

    30

    2 45

    Zëvendëso 10 me vlerën më të vogël në të

    djathtë

    Largo gjethen Pema e re

    Largimi i nyjës – mundësia 2

    • Largo nyjën me vlerën 10

    Prishtinë, 2015/2016 ©vehbineziri.com 12

  • Shembull 11.3

    Prishtinë, 2015/2016 ©vehbineziri.com 13

    o Të zgjerohet shembulli paraprak dhepërmes funksionit largoNyjen tëlargohet nyja e caktuar sipas vlerëssë dhënë.

  • Pemët kuq e zi

    Prishtinë, 2015/2016 ©vehbineziri.com 14

    • Pemët kuq e zi janë zbuluar nga Rudolf Bayer, në vitin 1972, icili në fillim i ka quajtur “B-Trees”.

    • Në vitin 1978, Leonidas J. Guibas dhe Robert Sedgewick, ipërdorën ngjyrat kuq e zi dhe prej atëherë u quajtën meemrin pemët kuq e zi

    • Përcjellja e ngjyrës për secilën nyje kërkon 1 bit tëinformacionit për nyje, sepse janë vetëm dy ngjyra.

    • Gjatë largimit ose insertimit të nyjës, bëhet prishja e tiparevetë pemës kuq e zi, prandaj duhet të bëhetrestaurimi/rivendosja.

  • Pemët kuq e zi

    Prishtinë, 2015/2016 ©vehbineziri.com 15

    • Pema kuq e zi është pemë binare e kërkimit (BST) e vetë-balancuar, ku secila nyje ndjek rregullat e mëposhtme

    • Secila nyje ka ngjyrën e kuqe ose të zezë

    • Rrënja e pemës është gjithmonë e zezë

    • Nuk ekzistojnë dy nyje të kuqe të ngjitura (nyja e kuqe

    nuk mund të ketë prind ose fëmijë të kuq)

    • Çdo rrugë nga rrënja deri në NULL ka numër të njëjtë të

    nyjave të zeza.

  • Shembull 11.4

    Prishtinë, 2015/2016 ©vehbineziri.com 16

    o Nëse është dhënë struktura Nyja dheklasa PemaKuqZi, të implementohenfunksionet rregullo, rrotulloMajtas,rrotulloDjathtas dhe funksioni përparaqitje (inOrder, postOrder osepreOrder).

  • Shembull 11.4

    Prishtinë, 2015/2016 ©vehbineziri.com 17

    o Nëse është dhënë struktura Nyja dheklasa PemaKuqZi, të implementohenfunksionet rregullo, rrotulloMajtas,rrotulloDjathtas dhe funksioni përparaqitje (inOrder, postOrder osepreOrder).

  • Prishtinë, 2015/2016 ©vehbineziri.com 18