using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Hashing
{
public partial class Form1 : Form
{
Person[] HashTable = new Person[7];
//Der er kun 7 pladser.
public
Form1()
{
InitializeComponent();
Person
p1 = new Person("Allan", "Hav
en god dag");
Person
p2 = new Person("Karl", "Sådan");
Person
p3 = new Person("Yogy", "det
ved jeg ikke");
Person p4 = new Person("Per",
"Måske");
Person p5 = new Person("Arne", "bil
er ikke min stil");
Person
p6 = new Person("Bent", "Nej
ikke i dag");
Person
p7 = new Person("Yonny", "det
må jeg sige");
Person p8 = new Person("Wee",
"iPad");
Person
p9 = new Person("Finn", "Windows");
Person p10 = new Person("Asker", "lone
er min kone");
Person p11 = new Person("Wisky",
"drikke");
insertPerson(p1);
insertPerson(p2);
insertPerson(p3);
insertPerson(p4);
insertPerson(p5);
insertPerson(p6);
insertPerson(p7);
insertPerson(p8);
insertPerson(p9);
insertPerson(p10);
insertPerson(p11);
printHashTable();
}
public int
hashFunction(String Navn)
{
int
svar = 0;
/*
Pos 0: A B C D
Pos 1: E F G H
Pos 2: I
J K L
Pos 3: M N O P
Pos 4: Q R S T
Pos 5: U V W X
Pos 6: Y Z Æ Ø Å null
hvis en Person´s navn starter med f.eks. C så skal denne
Person indsættet i
HashTable pos 0.
*/
String
navn = Navn.ToLower();
char
c = navn[0];
if(c.Equals('a') || c.Equals('b') ||c.Equals('c')
||c.Equals('d'))
{
svar = 0;
}
if (c.Equals('e') || c.Equals('f') ||
c.Equals('g') || c.Equals('h'))
{
svar = 1;
}
if (c.Equals('i') || c.Equals('j') ||
c.Equals('k') || c.Equals('l'))
{
svar = 2;
}
if (c.Equals('m') || c.Equals('n') ||
c.Equals('o') || c.Equals('p'))
{
svar = 3;
}
if (c.Equals('q') || c.Equals('r') ||
c.Equals('s') || c.Equals('t'))
{
svar = 4;
}
if (c.Equals('u') || c.Equals('v') ||
c.Equals('w') || c.Equals('x') )
{
svar = 5;
}
if (c.Equals('y') || c.Equals('z') ||
c.Equals('æ') || c.Equals('ø') || c.Equals('å')
|| c.Equals(' '))
{
svar = 6;
}
return svar;
}
public void
insertPerson(Person p)
{
int pos = hashFunction(p.navn);
if (HashTable[pos] == null)
{
HashTable[pos] = p;
}
else
{
p.next = HashTable[pos];
HashTable[pos]
= p;
}
}
public
String getData(String
Navn)
{
String
svar = "findes ikke i
systemet";
int pos = hashFunction(Navn);
if (HashTable[pos] == null)
{
}
else
{
Person
p = HashTable[pos];
while
(p != null)
{
if (p.navn.Equals(Navn))
{
svar = p.data;
}
p = p.next;
}
}
return svar;
}
public void printHashTable()
{
int teller = 0;
foreach (Person
p in HashTable)
{
Console.WriteLine("------------------
"+teller+"
---------------------");
teller++;
Person
holder = p;
while
(holder != null)
{
Console.WriteLine(holder.navn + " : " + holder.data);
holder = holder.next;
}
}
}
private void
button1_Click(object sender, EventArgs e)
{
textBox1.Text = getData(textBox1.Text);
}
}
public class Person
{
public String
navn;
public String
data;
public Person
next = null;
public Person(String Navn, String
Data)
{
navn = Navn;
data = Data;
}
}
}
|