利用雜湊表寫個電話簿(拉鍊法解決hash衝突)

2022-09-12 16:06:25 字數 2482 閱讀 5799

1 #include "

bits/stdc++.h

"2 #include "

conio.h

"3 #include "

windows.h"4

using

namespace

std;

5 typedef struct

nodenode;

10char fname[100] = ;//

輸入的聯絡人名字不得超過100個字元

11 node people[27];//

**本12

int hash_lock(char

c)13

20void insert()//

增加聯絡人

2131 cin >> aa->phonenumber;

32if(strlen(aa->phonenumber) != 11)36

else43}

44 aa->next = people[key].next;//

直接頭插法

45 people[key].next =aa;

46 cout << "

inserting successful!

"<48}

49void find(char *findname)//

查詢聯絡人

5056 key = hash_lock(findname[0

]);57

if(key == -1

)61 node *p =people[key].next;

62while

(p)68 p = p->next;69}

70if(p ==null)74}

75void delete(char *deletename)//

刪除聯絡人

7682 key = hash_lock(deletename[0

]);83

if(key == -1)

87 node *p1,*p2;

88 p1 =people[key].next;

89if(p1 ==null)

93if(strcmp(p1->name,deletename) == 0 && strlen(p1->name) == strlen(deletename))

99 p2 = p1->next;

100while(p2 !=null)

107 p1 =p2;

108 p2 = p2->next;

109}

110 cout << "

the contact does not exist!

"<< endl;//

如果沒找到的話

111return

;112

}113

void

sfind()

114127

else

128find(fname);

129 memset(fname,0,sizeof(fname));//

清空字串

130}

131 fflush(stdin);//

清空'-'後的回車

132133

}134

void

sinsert()

135140

void

sdelete()

141154

else

155delete(fname);

156 memset(fname,0,sizeof(fname));//

清空字串

157}

158 fflush(stdin);//

清空'-'後的回車

159}

160int

main()

161176

switch(choose - 48

)181 cout << "

first:add contacts(input 1)

"<< endl;//

第乙個功能:插入功能

182 cout << "

second:delete contacts(input 2)

"<< endl;//

第二個功能:刪除功能

183 cout << "

third:find contacts(input 3)

"<< endl;//

第三個功能:查詢功能

184 cout << "

declare:if you want to quit,please input (esc) key.thanks for your use!

"<185}

186return0;

187 }

電話簿專案

專案一 簿 有個父類book,有成員變數 書本的名字,書本的路徑,有4個純虛函式,分別是增刪查改。類phonebook繼承了類book,並擴充套件了 號碼,姓名,擴充套件了登陸介面,實現了父類的4個純虛函式。資料資訊使用文字的方式儲存!include using namespace std incl...

python 電話簿排序

問題描述 編寫乙個程式,輸入n個使用者的姓名和 號碼,按照使用者姓名的詞典順序排列輸出使用者的姓名和 號碼。輸入形式 使用者首先在第一行輸入乙個正整數,該正整數表示待排序的使用者數目,然後在下面多行輸入多個使用者的資訊,每行的輸入格式為 姓名 以回車結束每個使用者的輸入。輸出形式 程式輸出排序後的結...

鍊錶實現電話簿(C )

試驗3 簿管理系統 鍊錶實現 include include include include include include include 獲取當前時間 define name size 20 define number size 12 using namespace std 鍊錶結構 struc...