数据结构课程设计报告 联系客服

发布时间 : 星期一 文章数据结构课程设计报告更新完毕开始阅读1ea4d0bafd0a79563c1e726d

《数据结构》课程设计

义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名计科专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着学习,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。

xxxx大学xxxx学院xxxx专业学号: xxxxxxx 姓名 :jenery6

17

《数据结构》课程设计

附录:源程序

#include #include #include

using namespace std;

ifstream in_file; ofstream out_file;

int D[10]={1,3,5,8,13,15,17,21,27,34};//伪随机数序列 int count;//当前数据元素个数 int sizeindex;//哈希表的长度 char *sign;//冲突的标志

struct Data {

string name; string phone; string address;

}; Data *intermediate_data;

int Collision_Random(int key,int i)//伪随机数探量观测再散列法处理冲突{

int Re_key; if(sign[key]=='1') {

xxxx大学xxxx学院xxxx专业 学号: xxxxxxx 姓名 :jenery6 18

《数据结构》课程设计

}

Re_key=(key+D[i])%sizeindex; return Re_key;//归回新的要害码

return -1; }

void Init_HashTable_by_name(string name,string phone,string address)//以姓名为关键字建立哈希表

{

int i=0; int key; char*p;

for(key=0,p=&name[0];*p;p++)

key=key+*p;

key=keyB;

while(sign[key]=='1') { }

if(key==-1)

exit(1);

key=Collision_Random(key,i+1);

count++;

intermediate_data[key].name=name;//将数据存入哈希表 intermediate_data[key].address=address; intermediate_data[key].phone=phone; sign[key]='1';//设置冲突标志 }

xxxx大学xxxx学院xxxx专业 学号: xxxxxxx 姓名 :jenery6 19

《数据结构》课程设计

int Collision_Rehash(int key,string str)//再哈希法处理冲突 {

int Re_key;

int num1=(str[0]-'0')*1000+(str[1]-'0')*100+(str[2]-'0')*10+(str[3]-'0'); int num2=(str[4]-'0')*1000+(str[5]-'0')*100+(str[6]-'0')*10+(str[7]-'0'); int num3=(str[8]-'0')*100+(str[9]-'0')*10+(str[10]-'0'); Re_key=num1+num2+num3; Re_key=(Re_key+key)%sizeindex; return Re_key; }

void Init_HashTable_by_phone(string name,string phone,string address)//以电话号码为关键字建立哈希表

{

int key; char*p;

for(key=0,p=&phone[0];*p;p++)

key=key+*p;

key=keyB;

while(sign[key]=='1') { } count++;

intermediate_data[key].name=name; intermediate_data[key].address=address; intermediate_data[key].phone=phone;

key=Collision_Rehash(key,phone);

xxxx大学xxxx学院xxxx专业 学号: xxxxxxx 姓名 :jenery6 20