Lösningsförslag till exempeltenta 2

Relevanta dokument
Lösningsförslag till exempeltenta 1

Datastrukturer. föreläsning 3. Stacks 1

Programmering för språkteknologer II, HT2011. Rum

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

Programmering för språkteknologer II, HT2011. Rum

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack

Föreläsning 3. Stack

Laboration 13, Arrayer och objekt

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Länkade strukturer. (del 2)

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter

TENTAMEN OOP

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Föreläsning 11. ADT:er och datastrukturer

Föreläsning 3. Stack

Tentamen. Lösningsförslag

Tentamen i Algoritmer & Datastrukturer i Java

Stackar, köer, iteratorer och paket

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 12. Länkade listor

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 8: Exempel och problemlösning

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 2. Länkad lista och iterator

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Konstruktion av klasser med klasser

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Tentamen i Algoritmer & Datastrukturer i Java

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Dugga Datastrukturer (DAT036)

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Föreläsning 7. Träd och binära sökträd

Föreläsning 2. Länkad lista och iterator

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Föreläsning 9: Arv och UML

Laboration 1 - Grunderna för OOP i Java

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Den som bara har en hammare tror att alla problem är spikar

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Kurskod D0010E Datum Skrivtid 5tim

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

DAT043 Objektorienterad Programmering

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

Lösningsförslag till tentamen

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Lösningsförslag, tentamen FYTA11 Javaprogrammering

LÖSNINGSFÖRSLAG TENTAMEN

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Malmö högskola 2008/2009 CTS

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Lösningar för tenta 2 DAT043,

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning 7. Träd och binära sökträd

Klasshierarkier - repetition

Föreläsning 2 Datastrukturer (DAT037)

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programmering för språkteknologer II, HT2014. Rum

Lösningsförslag till tentamen

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen FYTA11 Javaprogrammering

13 Prioritetsköer, heapar

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle

Lösningsförslag till tentamen

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Transkript:

Lösningsförslag till exempeltenta 2 1

1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv huvudidén, vilken den kan användas på, och tidskomplexitet. - Skriv pseudokod - Ge exempel på hur den fungerar. 2

2. Skriv koden för två klasser som ärver från följande klass (SuperClass2) och innehåller minst en egen metod. public class SuperClass2 { int number = 2; public int getnumber { return number; 3

Uppgift 2 lösningsförslag public class SubClass1 extends SuperClass2 { // constructor public SubClass1() { // method public void print(){ System.out.println("SubClass1"); 4

Uppgift 2 lösningsförslag public class SubClass2 extends SuperClass2 { // constructor public SubClass2() { // method public void print(){ System.out.println("SubClass2" + number); 5

3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Lösning: FIFO står för First In First Out struktur. FIFO innebär att den som placerats först I kön tas bort först. Operationer: enqueue() lägger till sist i strukturen dequeue() - tar bort det första elementet i strukturen och returnerar det peek() - returnerar det första elementet i strukturen utan att ta bort det isempty() - returnerar sant om strukturen är tom och falskt annars. 6

3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Talet 1 placeras sist i FIFO-strukturen 2 3 enqueue(1) 2 3 1 7

3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Talet 2 lämnar FIFO-strukturen och returneras. 2 3 1 dequeue() 3 1 8

3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Titta på det första element i FIFO-strukturen och returnera det. 2 3 1 2 peek() 9

3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Testa om FIFO-strukturen är tom. 2 3 1 isempty() false 10

4. Vad kommer följande program att skriva ut? Förklara exempel 5 och 10 i detalj. public class TestRegularExpression { private static void tryreg(string ex, String regexp, String text) { if (text.matches(regexp)) { System.out.println(ex + " matchar."); else { System.out.println(ex + " matchar INTE."); 11

Uppgift 4 public static void main(string[] args) { tryreg("exempel 1", "a?b.*", "bbc"); tryreg("exempel 2", "(ac)+b", "acacb"); tryreg("exempel 3", "ab*c?", "a"); tryreg("exempel 4", "ab*c?", "ac"); tryreg("exempel 5", "cb*a", "cba"); tryreg("exempel 6", "(ba)?b*", "babbbbbb"); tryreg("exempel 7", "(ba)?b*", ""); tryreg("exempel 8", "((aca) (bb)).*c.*d?", "acad"); tryreg("exempel 9", "((aca) (bb)).*c.*d?", "bbd"); tryreg("exempel 10", "((aca) (bb)).*c.*d?", "bbacabbccd"); 12

Uppgift 4 Lösning tryreg("exempel 1", "a?b.*", "bbc"); Utskrift: Exempel 1 matchar. Förklaring: a? - option, a antingen finns eller inte b - b måste finnas.* - vad som helst får finnas 13

Uppgift 4 Lösning tryreg("exempel 2", "(ac)+b", "acacb"); Utskrift: Exempel 2 matchar. Förklaring: (ac)+ - ac måste finnas minst en gång b - strängen måste avslutas med ett b 14

Uppgift 4 Lösning tryreg("exempel 3", "ab*c?", "a"); tryreg("exempel 4", "ab*c?", "ac"); Utskrift: Exempel 3 matchar. Exempel 4 matchar. Förklaring: a - strängen måste börja på a b* - måste finnas 0 eller flera b c? - option, strängen kan antingen avslutas med c eller inte 15

Uppgift 4 Lösning tryreg("exempel 5", "cb*a", "cba"); Utskrift: Exempel 5 matchar. Förklaring: c - strängen måste börja på c b* - måste finnas 0 eller flera b a - strängen måste sluta på ett a cba börjar på c, innehåller ett b och slutar på ett a, därför matchar strängen det reguljära uttrycket cb*a 16

Uppgift 4 Lösning tryreg("exempel 6", "(ba)?b*", "babbbbbb"); tryreg("exempel 7", "(ba)?b*", ""); Utskrift: Exempel 6 matchar. Exempel 7 matchar. Förklaring: (ba)? - option, strängen måste antingen börja på ba eller inte b* - resten av strängen måste bestå av 0 eller flera b 17

Uppgift 4 Lösning tryreg("exempel 8", "((aca) (bb)).c*.*d?", "acad"); tryreg("exempel 9", "((aca) (bb)).c*.*d?", "bbd"); tryreg("exempel 10", "((aca) (bb)).c*.*d?", "bbacabbccd"); Utskrift: Exempel 8 matchar INTE. Exempel 9 matchar INTE. Exempel 10 matchar. Förklaring: ((aca) (bb)) - strängen måste börja på aca eller bb. - strängen innehåller ett tecken som är vad som helst c* - strängen innehåller 0 eller flera c.* - strängen innehåller vad som helst eller inte d? - option, strängen avslutas med d eller inte 18

Uppgift 4 Lösning tryreg("exempel 10", "((aca) (bb)).c*.*d?", "bbacabbccd"); Förklaring: ((aca) (bb)) - strängen måste börja på aca eller bb. - strängen innehåller ett tecken som är vad som helst c* - strängen innehåller 0 eller flera c.* - strängen innehåller vad som helst eller inte d? - option, strängen avslutas med d eller inte Strängen matchar uttrycket eftersom den kan delas upp så här: bb-a-c-abbcc-d bb uppfylls av ((aca) (bb)) a uppfylls av. c uppfylls av c* abbcc uppfylls av.* 19 d uppfylls av d?

5a. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ab?)*c* 5b. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (abc? ac)* 5c. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ad* b*)++ 20

5a. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ab?)*c* Lösning: Längd 0: Längd 1: a, c Längd 2: aa, ab, ac, cc Längd 3: aaa, aab, aba, abc, aac, acc, ccc 21

5b. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (abc? ac)* Lösning: Längd 0: Längd 1: finns inga Längd 2: ab, ac Längd 3: abc 22

5c. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ad* b*)++ Lösning: Längd 0: Längd 1: a, b Längd 2: aa, ab, ad, ba, bb Längd 3: aaa, aab, aba, aad, ada, adb, bbb, bba, bab, abb, bba, baa, bad 23

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. 24

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: package: - klassen samt dess metoder och instansvariabler blir endast synliga för klasserna i samma paket. - kan användas för att samla de klasser som beskriver/utför något gemensamt, Exempel: Klasser som handlar om djur placeras i paketet animal om man skriver detta högst upp i filen: package animal; 25

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: För att en klass utanför paketet ska komma åt klasserna i paketet animal, måste man importera paketet genom att skriva: import animal.*; 26

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: protected metoden eller instansvariabeln blir tillgänglig för subklasser som finns i samma och i andra paket. protected bör ändast användas på metoder och instansvariabler som ska vara gemensamma för klasser i samma paket och klasser som ärver den klassen de finns i. 27

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel: I paketet school finns klassen Person som innehåller en instansvariabel deklarerad med protected. public class Person { protected name = "Kalle"; 28

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel: I paketet school finns klassen Person som innehåller en instansvariabel deklarerad med protected: public class Person { protected name = "Kalle"; Alla klasser i paketet school och klasser som ärver Person kan använda name direkt utan att behöver använda getter/setter. 29

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: private används på klasser, metoder och instansvariabler som man enbart vill ska vara synlig för klassen själv. 30

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel Endast stacken själv ska veta att den är uppbyggd av noderna. övriga klasser ska endast behöva fundera över hur de ska tillämpa klassen Stack. public class Stack { private class Node { int ; Node ; Node(E v, Node n) { = v; = n; 31

6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Tillgänglighet i publ ic Synlighet hos medlemmar protec packa ted ge Samma klass JA JA JA JA privat e Klass i samma paket JA JA JA NEJ Subklass i annat paket JA JA NEJ NEJ Icke-subklass, annat paket JA NEJ NEJ NEJ 32

7. Skriv koden för en klass som implementerar gränssnittet Interface7. Metoden reverse(int[] array)vänder på arrayen array. public interface Interface7 { public void reverse(int[] array); 33

Uppgift 7 Lösning public class Uppgift7 implements Inteface7 { // Constructor public Uppgift7(){ // Implement the method public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; 34

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 4 3 1 35

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 4 3 1 i 36

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 4 3 1 swap: 4 i 37

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 4 3 1 swap: 4 i Array.length 1- i 38

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 4 3 4 swap: 4 i Array.length 1- i 39

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 4 3 4 i 40

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 4 3 4 swap: 4 i 41

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 3 4 swap: 4 i Array.length 1- i 42

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 4 swap: 4 i Array.length 1- i 43

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 4 i 44

Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 4 45

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 5 4 46

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 5 4 i 47

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 1 3 4 5 4 i Array.length 1- i 48

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 3 4 5 1 i 49

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 3 4 5 1 i Array.length 1- i 50

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 5 4 3 1 i 51

Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: 4 5 4 3 1 52

8. Skriv koden för metoden public boolean issorted() som returnerar sant om värderna i en Stack<E> finns i en stigande ordning. Metoden ska även klara av att samma värde finns i flera positioner. 53

Uppgift 8 public class Stack<E extends Comparable<E>> { private class Node { E ; Node ; Node(E v, Node n) { = v; = n; private Node top; 54

Uppgift 8 public void push(e v) { Node newtop = new Node(v,top); top = newtop; public E pop() { E v = top.; top = top.; return v; 55

Uppgift 8- Lösning public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; 56

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 2 57

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 2 58

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 2 59

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 60

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 61

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 62

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 63

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 64

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 65

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 66

Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 67

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 3 68

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 3 69

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 3 70

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 71

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 72

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 73

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 74

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 75

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 76

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 77

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 78

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 79

Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 80