Java問題 |
尚未結案
|
doubleface
一般會員 發表:4 回覆:0 積分:0 註冊:2003-11-18 發送簡訊給我 |
想寫一個Hashing的演算法(有insert,del,search功能),用linkedList來解決碰撞,用 (數字 mod 10) 來決定數字放在那個陣列,陣列大小階為10。只寫出個別的程式。希望高手能指導一下,寫成一個程式,謝謝。
//程式1
public class hashing
{
public static void main (String[] args)
{
int arry1[]=new int[10];
int arry2[]=new int[10];
arry2[0]=0;
arry2[1]=81;
arry2[2]=64;
arry2[3]=25;
arry2[4]=36;
arry2[5]=49;
arry2[6]=1;
arry2[7]=4;
arry2[8]=16;
arry2[9]=9;
v=arry2[0] % 10 ;
switch(a)
{
case 0:
arry1[0]=arry2[0];
System.out.println("0放在" v);
break;
}}}
//程式2
import java.util.*;
import java.io.*;
class ListNode
{
String str;
ListNode link;
}
class LL
{
public static void main(String[] args)
{
int i=0;
LinkedList List=new LinkedList();
do{
try{
Reader in=new InputStreamReader(System.in);
String data;
System.out.println("請選擇欲執行的功能:");
System.out.println("新增,請選擇=>A");
System.out.println("刪除,請選擇=>D");
System.out.println("搜尋,請選擇=>S");
System.out.println("結束,請選擇=>Q");
System.out.print("您欲執行的項目是:");
i=in.read(); if((char)i=='A')
{
InputStreamReader num=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(num);
System.out.print("請輸入欲新增的數值: ");
data=br.readLine();
List.insert(data);
List.print();
System.out.println();
} else if((char)i=='D')
{
List.delete();
List.print();
} else if((char)i=='S')
{
InputStreamReader num=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(num);
System.out.print("請輸入欲搜尋的數值");
data=br.readLine();
List.search(data);
List.print();
System.out.println();
}}
catch(IOException e)
{
e.printStackTrace();
}
System.out.println();
}
while((char)i!='Q');}} class LinkedList //副程式
{
int length;
ListNode firstNode;
public int size(){
return length;} public void insert(String strCode)
{
ListNode list2=new ListNode();
list2.str=strCode;
list2.link=null;
if(firstNode==null)
{firstNode=list2;}
else
{
ListNode p=firstNode;
while(p.link!=null){
p=p.link;
}
p.link=list2;
}
length ;
} public void delete(){
ListNode previousNode,currentNode;
if(firstNode!=null){
if(firstNode.link==null){
firstNode=null;
length--;
}
else{
previousNode=firstNode;
currentNode=firstNode.link;
while(currentNode.link!=null){
previousNode=currentNode;
currentNode=currentNode.link;
}
previousNode.link=null;
length--;
}}} public ListNode search(String strCode) //Search
{
int S=1;
ListNode list2;
list2=firstNode;
while(list2!=null)
{
if (strCode.equals(list2.str))
{
System.out.println("欲搜尋的值為第" S "個Node");
return list2;
}
else
{list2=list2.link;
S=S 1;
if (list2==null) System.out.println("找不到你要找的值");
}
}
return list2;} public void print()
{
ListNode list2;
System.out.println("執行結果為: ");
System.out.println();
list2=firstNode;
while(list2!=null)
{
System.out.print(list2.str);
list2=list2.link;
if(list2!=null)
System.out.print("->");
}}}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |