當前位置:首頁 » 課程大全 » 哈希表課程設計

哈希表課程設計

發布時間: 2021-02-28 17:47:57

㈠ 哈希表設計

太復抄雜太深奧 了 不知道這個對你有沒有幫助~~

http://www.kaogo.com/learning/html/2007-6/20076191512042556282-2.html

課程設計:哈希表操作

PASCAL語言 不知您能否看懂
function bkd(ss:string):longint;//哈希函數
var i:longint;
begin
bkd:=0;
for i:=1 to length(ss) do
bkd:=((bkd*131+ord(ss[i])) and $FFFFFFF) mod 999997;
end;
function find(ss:string):longint;//查找操作
var j:longint;
begin
j:=hash[num];//哈希表的頭指針
while (j>0) and (list[j]<>ss) do j:=next[j];//拉鏈探測,相當於一專個桶來處理沖突
exit(j);//返回屬在線性表中的位置
end;
procere insert(ss:string);//插入操作,SS為插入元素,以字元串的形式存儲
var j:longint;
begin
inc(loc);
list[loc]:=ss;//線性表
next[loc]:=hash[num];//鏈到對應哈希值的桶上
hash[num]:=loc;
end;
哈希值計算:NUM:=BKD(SS) MOD OO;oo就是你要除余得數

㈢ 數據結構課程設計《哈希表查找》,求大神給代碼啊

肯定不是A,因為模為23的余數為0~22,不會是3位數2789465^2=7781114986225,正好是答案B

㈣ 正在做數據結構的課程設計,有關通訊錄的系統設計,要用C,要用哈希表,求高手!!!!!!!!!!!!

#include<stdio.h>
#include<iostream>
#include<conio.h>

using namespace std;

#define HASH_LEN 50
#define M 47
int NAME_NO=30;

typedef struct
{
char *py;
int k;
}NAME;

NAME NameList[HASH_LEN];

typedef struct
{
char *py;
int k;
int si;
}HASH;

HASH HashList[HASH_LEN];

void InitNameList()
{
char *f;
int r,s0,i;
NameList[0].py="jiangyi";
NameList[1].py="zhouling";
NameList[2].py="yiqiang";
NameList[3].py="xielu";
NameList[4].py="lichi";
NameList[5].py="yixiaoxia";
NameList[6].py="tanxi";
NameList[7].py="zhangxiaowen";
NameList[8].py="lilin";
NameList[9].py="ouyangyong";
NameList[10].py="chenkaihan";
NameList[11].py="maqingyu";
NameList[12].py="hefei";
NameList[13].py="luowen";
NameList[14].py="yangwencheng";
NameList[15].py="wangzhen";
NameList[16].py="xiaguo";
NameList[17].py="caifuxian";
NameList[18].py="shenwenbo";
NameList[19].py="gaoyuehua";
NameList[20].py="xiaoyubin";
NameList[21].py="wangwei";
NameList[22].py="huangyingbo";
NameList[23].py="gongchong";
NameList[24].py="wuhang";
NameList[25].py="zhouweicheng";
NameList[26].py="yubo";
NameList[27].py="dengliquan";
NameList[28].py="liuyuan";
NameList[29].py="luokaibo";
for (i=0;i<NAME_NO;i++)
{
s0=0;
f=NameList[i].py;
for (r=0;*(f+r)!='\0';r++)
s0=*(f+r)+s0;
NameList[i].k=s0;
}
}

void CreateHashList()
{
int i;
for (i=0; i<NAME_NO;i++)
{
HashList[i].py="";
HashList[i].k=0;
HashList[i].si=0;
}
for (i=0;i<HASH_LEN;i++)
{
int sum=0;
int adr=(NameList[i].k)%M;
int d=adr;
if(HashList[adr].si==0)
{
HashList[adr].k=NameList[i].k;
HashList[adr].py=NameList[i].py;
HashList[adr].si=1;
}
else
{
do
{
d=(d+NameList[i].k%10+1)%M;
sum=sum+1;
}while (HashList[d].k!=0);
HashList[d].k=NameList[i].k;
HashList[d].py=NameList[i].py;
HashList[d].si=sum+1;
}
}
}

int FindList()

{

char name[20]=;
int s0=0,r,sum=1,adr,d;
printf("\n請輸入人物名稱:");
scanf("%s",name);
for (r=0;r<20;r++)
s0+=name[r];
adr=s0%M;
d=adr;
if(HashList[adr].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為: 1",HashList[d].py,s0);
cout<<endl;
return 0;
}
else if (HashList[adr].k==0)
{
printf("無此記錄!");
cout<<endl;
return 1;
}
else
{
int g=0;
do
{
d=(d+s0%10+1)%M;
sum=sum+1;
if (HashList[d].k==0)
{
printf("無此記錄! ");
cout<<endl;
g=1;
return 1;
}
if (HashList[d].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為:%d",HashList[d].py,s0,sum);
cout<<endl;
g=1;
return 0;
}
}while(g==0);
}
}

void Display()
{
int i;
float average=0;
for(i=0; i<NAME_NO; i++)
{
if(HashList[i].k%M==0)
HashList[i].py="";
}
printf("\n\n地址\t關鍵字\t\t搜索長度\tH(key)\t 名稱\n");
for(i=0; i<NAME_NO; i++)
{
printf("%d ",i);
printf("\t%d ",HashList[i].k);
printf("\t\t%d ",HashList[i].si);
printf("\t\t%d ",HashList[i].k%M);
printf("\t %s ",HashList[i].py);
printf("\n");
}
for (i=0;i<HASH_LEN;i++)
average+=HashList[i].si;
average/=NAME_NO;
printf("\n\n平均查找長度:ASL(%d)=%f \n\n",NAME_NO,average);
}

void DeleteList()
{
char name[20]=;
int s0=0,r,sum=1,adr,d;
printf("\n請輸入人名拼音:");
scanf("%s",name);
for (r=0;r<20;r++)
s0+=name[r];
adr=s0%M;
d=adr;
if(HashList[adr].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為: 1",HashList[d].py,s0);
cout<<endl;
cout<<"刪除成功!"<<endl;
s0=0;
HashList[d].py="";
HashList[d].k=0;
HashList[d].si=0;
}
else if (HashList[adr].k==0)
printf("無此記錄!無法執行刪除操作!");
else
{
int g=0;
do
{
d=(d+s0%10+1)%M;
sum=sum+1;
if (HashList[d].k==0)
{
printf("無此記錄!無法執行刪除操作!");
g=1;
}
if (HashList[d].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為:%d",HashList[d].py,s0,sum);
cout<<endl;
cout<<"已刪除成功!"<<endl;
s0=0;
HashList[d].py="";
HashList[d].k=0;
HashList[d].si=0;
g=1;
}
}while(g==0);
}
}

void EnterList()
{
char st[20];
char *xin;
xin=st;
int s0=0,r,sum=1,adr,d,h;
printf("\n請輸入人名的拼音:");
cin>>xin;
for (r=0;*(xin+r)!='\0';r++)
{
s0=(int)(*(xin+r))+s0;
}
adr=s0%M;
d=adr;
if(HashList[adr].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為: 1",HashList[d].py,s0);
cout<<endl;
cout<<"已存在於表中,無需插入!"<<endl;
}
else if (HashList[d].k==0)
{
printf("插入成功!");
HashList[d].py=xin;
HashList[d].k=s0;
HashList[d].si=1;
h=1;
cout<<endl;
}
else
{
int g=0,h=0;
do
{
d=(d+s0%10+1)%M;
sum=sum+1;
if (HashList[d].k==0)
{
printf("插入成功!");
HashList[d].py=xin;
HashList[d].k=s0;
HashList[d].si=sum;
h=1;
cout<<endl;
g=1;
}
if (HashList[d].k==s0)
{
printf("\n名稱:%s 關鍵字:%d 查找長度為:%d",HashList[d].py,s0,sum);
cout<<endl;
cout<<"已存在於表中,無需插入!"<<endl;
g=1;
}
}while(g==0);
}
if(h==0)
return;
else
{
NAME_NO++;
NameList[NAME_NO-1].py=xin;
int sum=0;
int adr=(NameList[NAME_NO-1].k)%M;
int d=adr;
if(HashList[adr].si==0)
{
HashList[adr].k=NameList[NAME_NO-1].k;
HashList[adr].py=NameList[NAME_NO-1].py;
HashList[adr].si=1;
}
else
{
do
{
d=(d+NameList[NAME_NO-1].k%10+1)%M;
sum=sum+1;
}while (HashList[d].k!=0);
HashList[d].k=NameList[NAME_NO-1].k;
HashList[d].py=NameList[NAME_NO-1].py;
HashList[d].si=sum+1;
}
}
}

void main()

{
char ch1;
printf("\n 哈希表\n");
printf(" *-------------------------------------------*\n");
printf(" | A. 顯示哈希表 |\n");
printf(" | B. 查找 |\n");
printf(" | C. 刪除 |\n");
printf(" | D. 插入 |\n");
printf(" | E. 退出 |\n");
printf(" *-------------------------------------------*\n");
InitNameList();
CreateHashList ();
while(1)
{
printf("\n 請輸入執行命令:");
fflush(stdin);
ch1=getchar();
if (ch1=='A'||ch1=='a')
Display();
else if (ch1=='B'||ch1=='b')
FindList();
else if (ch1=='C'||ch1=='c')
DeleteList();
else if (ch1=='D'||ch1=='d')
EnterList();
else if (ch1=='E'||ch1=='e')
return;
else
{
printf("\n請輸入正確的選擇!");
}
}
}
另外,團IDC網上有許多產品團購,便宜有口碑

㈤ 數據結構課程設計<散列表的基本運算和簡單的學生信息管理系統>

ploxq
572

㈥ 數據結構課程設計:Hash表的應用 要求:掃描一個C語言源程序,用Hash表存儲該程序中出現的關鍵字,並統計該程

先去看紅黑樹吧!

㈦ 課程設計 哈希表

星期 星期一 星期二 星期三 星期四 星期五
課程
上午 英語 數學版 數學 數學 語文權
語文 語文 語文 語文 數學
數學 音樂 數學 音樂 體育
美術 體育 微機 體育 語文
下午 語文 語文 語文 語文 英語
數學 數學 美術 思品 語文
語文 班會 數學 少先隊 閱讀

㈧ 課程設計: 使用哈希表技術判別兩個源程序的相似性

可惜我不懂這個

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919