C 第六次作業 編寫乙個雜湊(Hash)錶類

2021-04-02 14:15:21 字數 2089 閱讀 4285

//hash.h

#include

using namespace std;

/*設 hash 函式為:

hash (key) = [ 字串所有字母的ascii碼的和 ] mod 51

*/class hashelem

string str;

int empty;

hashelem *pnext;

};class hash ;

bool searchhash(const string);

int lettersum(const string);

void insert(const string);

bool remove(const string);

private:

hashelem _elem[50];

int _length;

};//hash.cpp

#include "hash.h"

int hash::lettersum(const string str)

void hash::insert(const string s)

p = new hashelem;

(*p).empty = 1;

(*p).str = s;

(*p).pnext = 0;

_length++;

} else

}bool hash::searchhash(const string s)

return 0;

}bool hash::remove(const string s)

p = (*p).pnext;

}return 0;}/*

說明:本題,我參考了《資料結構》中關於「雜湊錶類」的相關演算法,

由於時間問題,並未在涉及參考相關演算法的**部分做標記。

完成本題總共花費時間大約40分鐘,程式未經完善。

1. 編寫乙個雜湊(hash)錶類,以字串作為關鍵字存放和查詢記錄,

提供公共成員函式進行雜湊表的記錄插入、查詢和刪除。

並在main函式中測試對該類的使用。

*/#include "hash.h"

#include

using namespace std;

void main()

string(char* s)

string(const string& s)

~string()

private:

int len;

char* str;

};class word

word(string& s,int cnt=0):name(s),occurs(cnt){}

private:

int occurs;

string name;

};class synantonym

synantonym(char* s1,char* s2,char* s3):wd(s1),synonym(s2),antonym(s3){};

~synantonym(){};

private:

string synonym;

word  wd;

string antonym;

};void main()

/*3. 分析下列程式可能存在的問題。

*/#include

using namespace std;

class string

string(const string& s)

string()

~string()

private:

int len;

char* str;

};class word

word(string& s,int cnt=0):name(s),occurs(cnt){}

/*將下面的語句改為:

word(const word& w)

*/word(const word& w):name(w.name),occurs(0){}

private:

int occurs;

string name;

};void main()

C 第六次作業

一 專案2 陣列合併 已知有兩個有序的陣列a,b,將這兩個陣列合併到陣列c中,陣列c依然有序,如a 5 b 5 則c 10 includevoid main b 5 int c 10 i,j,k,t for i 0 i 5 i 將a陣列賦給c陣列前五項 c i a i for i 5,j 0 i 1...

第六次C 作業

問題及 檔名稱 8941 作 者 鐘芳祈 完成日期 2017 年 5月 16 日 版 本 號 v1.0 輸入描述 兩個陣列 問題描述 已知有兩個有序的陣列a,b,將這兩個陣列合併到陣列c中,陣列c依然有序 程式輸出 合併後的陣列 問題分析 先輸入陣列,進行合併後,再排序 演算法設計 問題及 檔名稱 ...

c 第六次作業

專案二 陣列合併 include using namespace std intmain b 5 c 10 i,j,t for i 0 i 5 i c i a i for i 0 i 5 i c i 5 b i for i 0 i 9 i for j 0 j 9 i j if c j c j 1 t...