Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. package com.inql;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7.  
  8. public class AL6_3 {
  9.  
  10.     private Surname[] surnames;
  11.     private Surname[] T;
  12.     private final Surname del = new Surname(0,"DEL");
  13.  
  14.     public AL6_3(String path) throws IOException {
  15.         this.surnames = readFile(path);
  16.     }
  17.  
  18.     public Surname[] getSurnames() {
  19.         return surnames;
  20.     }
  21.  
  22.     public Surname[] readFile(String path) throws IOException {
  23.         FileInputStream fileInputStream = new FileInputStream(path);
  24.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
  25.         Surname[] A;
  26.         String currentLine;
  27.         int arraySize = 0;
  28.         while((currentLine = bufferedReader.readLine()) != null){
  29.             arraySize++;
  30.         }
  31.         A = new Surname[arraySize];
  32.         fileInputStream.getChannel().position(0);
  33.         bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
  34.         for(int i=0; i<arraySize; i++){
  35.             currentLine = bufferedReader.readLine();
  36.             Surname item = new Surname(Integer.parseInt(currentLine.split(" ")[0]),currentLine.split(" ")[1]);
  37.             A[i] = item;
  38.         }
  39.         return A;
  40.     }
  41.  
  42.     public void hashInsert(Surname surname){
  43.         int i = 0;
  44.         int j;
  45.         do {
  46.             j=hash(Utilities.wordToLong(surnames[i].getSurname(),111),T.length,i);
  47.             if(T[j]==null || T[j].getSurname().equals("DEL")){
  48.                 T[j] = surname;
  49.                 return;
  50.             }
  51.             i++;
  52.         }while(i<T.length);
  53.         System.out.println("Błąd - brak miejsca w tablicy");
  54.     }
  55.  
  56.     public int hashSearch(String surname){
  57.         int i =0;
  58.         int j =0;
  59.         do {
  60.             j=hash(Utilities.wordToLong(surname,111),T.length,i);
  61.             if (T[j].getSurname().equals(surname))
  62.                 return j;
  63.             i++;
  64.         }while(T[j]!= null && i<T.length);
  65.         return -1; //nie znaleziono wartości
  66.     }
  67.  
  68.     public void hashDelete(String surname){
  69.         int j = hashSearch(surname);
  70.         if(j>=0)
  71.             T[j] = del;
  72.         else
  73.             System.out.println("Brak takiej wartości w tablicy - nic nie zostało usunięte");
  74.     }
  75.  
  76.     //adresowanie otwarte liniowe
  77.     public int hash(long k, int m, int i){
  78.         long result = (k % m +i)%m;
  79.         return (int)result;
  80.     }
  81.  
  82.  
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement