Løsningsforslag6

Fra Hiofwiki

Gå til: navigasjon, søk

Innhold

Gruppe 14

Oppgavesett 6

Oppgave 1

package Oppgavesett6;

import java.util.*;
import java.io.*;

public class Oppgave1 {

    
    public static void main(String[] args) 
    {
        LinkedList<Integer> listLevels = new LinkedList<Integer>();
        LinkedList<File> listFiles = new LinkedList<File>(); 
        listFiles.add(new File(args[0]));
        listLevels.add(0);
        
        while(!listFiles.isEmpty())
        {
            File file = listFiles.poll();
            int level = listLevels.poll().intValue();
            
            if(file.isDirectory())
            {
                File[] files = file.listFiles();
                
                for(int i=0; i<files.length; i++)
                {
                    listFiles.add(files[i]);
                    listLevels.add(level + 1);
                }
            }
            for(int i=0; i<level; i++)
                System.out.print(" ");
            System.out.println(file.getName());
        }
    }
}

Oppgave 2

package Oppgavesett6;

import java.util.*;
import java.io.*;

public class Oppgave2 {

    public static void main(String[] args) 
    {
        LinkedList<Integer> listLevels = new LinkedList<Integer>();
        LinkedList<File> listFiles = new LinkedList<File>(); 
        listFiles.push(new File(args[0]));
        listLevels.push(0);
        
        while(!listFiles.isEmpty())
        {
            File file = listFiles.pop();
            int level = listLevels.pop().intValue();
            
            if(file.isDirectory())
            {
                File[] files = file.listFiles();
                
                for(int i=0; i<files.length; i++)
                {
                    listFiles.push(files[i]);
                    listLevels.push(level + 1);
                }
            }
            for(int i=0; i<level; i++)
                System.out.print(" ");
            System.out.println(file.getName());
        }
    }
}

Oppgave 3

Kommer snart...

Oppgave 4

En stakk har operasjonene empty, peek, pop, push. I tillegg til disse ønsker vi en operasjon max, som returnerer det største elementet.

Vi kan f.eks bruke ArrayList.

Vi må ha en variabel som tar vare på max-verdien.

push:

  • Vi sammenligner max med den nye verdien. Er den større enn max, endrer vi max.
  • Legger til i listen. (add)

peek:

  • Ser på siste element i lista (get)

pop:

  • Fjerner siste element i lista (remove)

empty:

  • returner om listen er tom (isEmpty)

max:

  • returnerer max variablen