Oppgavesett 12

Fra Hiofwiki

Gå til: navigasjon, søk

Innlevering 12 for gruppe X

Oppgave 1

         4
        / \
       /   \
      2     8
     / \   / \
    1   3 6   9
         / \   \
        5   7   10

Tegn hvordan treet blir seende ut etter innsetting (i denne rekkefølgen) av verdiene 11,12,13,...,20. (11)

         4
        / \
       /   \
      2     8
     / \   / \
    1   3 6   9
         / \   \
        5   7   10

\

                  11
         8
        / \
       /   \
      4     9
     / \     \
    /   \     \
   2     6     10
  / \   / \      \
 1   3 5   7     11

8

             /   \
           /       \
         /           \
       4              10
     /   \           /  \
   2      6         9    11
 /   \   / \
1     3 5   7


(12)

               8
             /   \
           /       \
         /           \
       4              10
     /   \           /  \
   2      6         9    11
 /   \   / \               \
1     3 5   7              12

(13)

8

             /   \
           /       \
         /           \
       4              10
     /   \           /  \
   2      6         9    11
 /   \   / \               \
1     3 5   7              12
                             \
                             13

8

             /   \
           /       \
         /           \
       4              10
     /   \           /  \
   2      6         9    12
 /   \   / \            /  \
1     3 5   7          11  13


(14)

8

             /   \
           /       \
         /           \
       4              10
     /   \           /  \
   2      6         9    12
 /   \   / \            /  \
1     3 5   7          11  13
                             \
                             14

8

             /   \
           /       \
         /           \
       4              12
     /   \           /  \
   2      6         10   13
 /   \   / \       /  \    \
1     3 5   7     9    11   14

(15)

8

             /   \
           /       \
         /           \
       4              12
     /   \           /  \
   2      6         10   13
 /   \   / \       /  \    \
1     3 5   7     9    11   14
                             \
                              15

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      14
 /   \   / \     /  \    /  \
1     3 5   7   9    11 13   15

(16)

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      14
 /   \   / \     /  \    /  \
1     3 5   7   9    11 13   15
                              \
                               16

(17)

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      14
 /   \   / \     /  \    /  \
1     3 5   7   9    11 13   15
                              \
                               16
                                 \
                                 17

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      14
 /   \   / \     /  \    /  \
1     3 5   7   9    11 13   16
                            /  \
                           15   17

(18)

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      14
 /   \   / \     /  \    /  \
1     3 5   7   9    11 13   16
                            /  \
                           15   17
                                 \
                                 18
               8
             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      16
 /   \   / \     /  \    /  \
1     3 5   7   9    11 14   17
                       /  \   \
                      13  15   18

(19)

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10      16
 /   \   / \     /  \    /  \
1     3 5   7   9    11 14   17
                       /  \   \
                      13  15   18
                                \
                                 19

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10       16
 /   \   / \     /  \    /     \
1     3 5   7   9    11 14     18
                       /  \   /  \
                      13  15 17   19

(20)

8

             /    \
           /        \
         /           \
       4              12
     /   \         /      \
   2      6       10       16
 /   \   / \     /  \    /     \
1     3 5   7   9    11 14     18
                       /  \   /  \
                      13  15 17   19
                                    \
                                     20

8

             /      \
           /          \
         /              \
       4                16
     /   \           /      \
   2      6        12         18
 /   \   / \     /    \       / \
1     3 5   7   10    14   17   19
               /  \   / \         \
              9   11 13 15         20

Oppgave 2.Ta utgangpunkt i følgende AVL-tre:

       30
      /  \
     /    \
   20      70
  /  \    /  \
10   25  50   80
        /  \
      40    60

Vis hvordan treet blir seende ut ved innsetting av følgende tall:

 45   55   65   75

Hver av disse innsettingene skal gjøres i det opprinnelige treet som er "tegnet" ovenfor. (45)

       30
      /  \
     /    \
   20      70
  /  \    /  \
10   25  50   80
        /  \
      40    60
        \
         45
       30
      /  \
     /    \
   20      50
  /  \    /  \
10   25  40   70
           \   \
            60  80
           /
         45
          50
         /  \
        /    \
      30      70
     /  \       \
   20   40       80
  /  \    \
 10   25   60
           /
         45
          50
         /  \
        /    \
      30      70
     /  \       \
   20   60       80
  /  \    \
 10   25   40
             \
              45
             50
            /  \
           /    \
         60      70
        /          \
      30            80
     /  \
    20   40
   /  \    \
  10   25   45
             60
            /  \
           /    \
         30      70
        /  \        \
      20    40      80
     /  \     \
    10   25    45

(55)

             60
            /  \
           /    \
         30      70
        /  \        \
      20    40      80
     /  \     \
    10   25    45
                \
                 55
             60
            /  \
           /    \
         40      70
        /  \        \
      30    45      80
     /        \
    20        55
   /  \
  10   25
             40
            /  \
           /    \
         30      60
        /       /   \
      20       45   70
     /  \        \    \
    10   25       55   80
             40
            /  \
           /    \
         20      60
        /  \     / \
      10    30 45   70
            /   \    \
          25     55   80

(65)

             40
            /  \
           /    \
         20      60
        /  \     / \
      10    30 45   70
            /   \   / \
          25    55 65  80

(75)

             40
            /  \
           /    \
         20      60
        /  \     / \
      10    30 45   70
            /   \   / \
          25    55 65  80
                       /
                      75
             60
            /  \
           /    \
         40      70
        /  \    /  \
      20    45 65   80
     /  \    \     /
    10   30  55   75
         /
        25

Oppgave 3.Følgende AVL-tre er gitt:

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    60
         \     \
         45    70

Ta utgangpunkt i dette treet og tegn hvordan det blir etter innlegging av verdiene: (i) 75 og deretter 80 (ii) 75 og deretter 65 (ii) 75, 35 og 47 (iv) 75, 35 og 32


(i,ii,iii,iv) (75)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    60
         \     \
         45    70
                 \
                  75
      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
         \   / \
         45 60  75

(i)(80)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
         \   / \
         45 60  75
                 \
                  80
         50
        /  \
       /    \
     30      70
     / \    /  \
   20   40 60   75
   /     \       \
  10      45      80

(ii)(35)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
      /  \   / \
     35  45 60  75

(ii)(47)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
      /  \   / \
     35  45 60  75
           \
            47
         50
        /  \
       /    \
     30      70
     / \    /  \
   20  40  60  75
   /   / \
  10  35  45
           \
            47
         50
        /  \
       /    \
     40      70
     / \    /  \
   30  45  60  75
   /   / \
  20  35  47
  /
 10
         40
        /  \
       /    \
     30      50
     / \    /  \
   20  35 45    70
   /        \   / \
  10        47 60 75

(iii)(65)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
         \   / \
         45 60  75
            /
           65
      30
     /  \
    /    \
  20      70
  /      /  \
10     50    75
      /  \
     40  60
      \    \
       45   65
         70
        /  \
       /    \
     30      75
     / \
   20   50
   /    / \
 10    40 60
        \   \
         45  65
         70
        /  \
       /    \
     50      75
     / \
   30   60
   / \    \
 20  40   65
 /     \
10     45
         50
        /  \
       /    \
     30      70
     / \     / \
   20   40  60  75
   /      \   \
 10       45   65

(iv)(35)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
       / \   / \
      35 45 60  75

(32)

      30
     /  \
    /    \
  20      50
  /      /  \
10     40    70
       / \   / \
      35 45 60  75
      /
     32
         50
        /  \
       /    \
     30      70
     / \    /  \
   20   40 60  75
   /   /  \
  10  35  45
      /
     32
         50
        /  \
       /    \
     40      70
     / \    /  \
   30   45 60  75
   / \
 20   35
 /    /
10   32
         40
        /  \
       /    \
     30      50
     / \       \
   20   45     70
   /    /      / \
 10   35      60  75
      /
     32
         40
        /  \
       /    \
     30      50
     / \       \
   20   35     70
   /    / \    / \
 10   32   45 60  75
         40
        /  \
       /    \
     30      70
     /\      /\
   20 35   50  75
   / /  \    \
 10 32  45    60

Oppgave 4.For n=1,2,... (og så lenge du orker) tegn et AVL tre med n noder som er slik at ingen AVL trær med de samme verdiene har større dybde. Sammenlign dybden til dette "verst mulige" AVL-treet med verdiene til 1.45*log(n). Oppgave 2 - Sjekking av om binære trær er AVL-trær Lag en rekursiv metode:

 boolean avling(node rot);

som sjekker om et vanlig binært tre oppfyller balansekravene til et AVL-tre. Bruk et enkelt tre der data i nodene bare er et heltall.

  public boolean avling(node rot) {
  boolean ret = true;
  try {
          rot.heightBalenced(rot);
      } catch (Exception e) {
          ret = false;
      }
      
      return ret;
  }
  int heightBalenced(node rot) throws Exception{
      int lb = 0, rb =0;
      if (rot.left!=null) lb = heightBalenced(rot.left) +1;
      if (rot.right!=null) rb = heightBalenced(rot.right) +1;
      
      if ((lb-rb)!=0&&(lb-rb)!=-1&&(lb-rb)!=1) 
          throw new Exception("Ubalansert tre, element " + rot.element + " skal ikke være " + (rb - lb));
      
      if (lb>rb) return lb;
      return rb;
      
  }

//Bruker følgende som node

public class node<T> {
  protected T element;
  protected node<T> venstre, hoyre;
  
  node (T obj){
      element = obj;
      venstre = null;
      hoyre = null;
  }
}

Fra lærebokas "Excersises" til kapittel 16: Oppgavene 16.1, 16.3 og 16.5. 16.1

             32
          /       \
      /               \
    3                   65
  /   \                /     \
1   12,17            34,45   87

16,3

                12,34
             /      |     \
            /       |       \
           1,3   17,32   45,65,87

16,5

                                17,34
                           /       |        \
                         /         |          \
                       /           |            \
             1,3,11,12,15,17   19,23,32,33   39,45,47,,55,65,67,87