日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

简易散列表实现电话号码查询系统

發(fā)布時(shí)間:2023/12/20 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简易散列表实现电话号码查询系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題描述:按電話號(hào)碼和用戶名為關(guān)鍵字,建立散列表。實(shí)現(xiàn)查找用戶和顯示用戶信息。本案例在vs2012編譯通過(guò)。


1.頭文件 Hsah.h

#pragma once
#include<iostream>
using namespace std;
struct Node
{
char *name; //姓名
char *address;//地址
char *num;//電話
Node *pNext;
};

class Hsah
{
private:
Node *phone;//指針存儲(chǔ)散列表,鏈地址法
Node *nam;


public:
Hsah();
~Hsah();?
int hashphone(char * num); //電話號(hào)碼散列表函數(shù)
int hashname(char * name); //姓名的散列表函數(shù)
Node * push(char *pname,char *add,char *pnum);
void append(char *pname,char *add,char *pnum);//添加記錄
Node * findnum(char *pnum);//按號(hào)碼查找
Node * findname(char *pname);//按姓名查找
void showphone();
void showname();
};


2.Hsah.cpp文件

#include "Hsah.h"

Hsah::Hsah()
{
this->phone=new Node [20]; //分配數(shù)組空間存儲(chǔ)哈希表
this->nam=new Node [20];
for(int i=0;i<20;i++) ? // 將指針滯空
{
this->phone[i].pNext=nullptr;
this->nam[i].pNext=nullptr;
}
}

Hsah::~Hsah()
{
delete [] phone;
delete [] nam;
}

int Hsah::hashphone(char * num) //電話號(hào)碼散列表函數(shù)
{
if(num==nullptr)
{
}
int key=0;
while(*num!='\0')
{
key+=(*num)-48 ;
num++;
}

return key%20;
}?

int Hsah::hashname(char * name) //姓名的散列表函數(shù)
{
int key=0;
int i=0;
while(name[i]!=NULL)
{
key+=int(name[i]);
i++;
}
return abs(key%20); //abs函數(shù)保證key為正值
}
Node * Hsah::push(char *pname,char *add,char *pnum)//分配存儲(chǔ)空間
{
Node *p=new Node;
? ? int len1 = strlen(pname);
int len2 = strlen(add);
int len3 = strlen(pnum);
p->name=new char[len1+1];
strcpy(p->name,pname);
(p->name)[len1] = '\0';
p->address = new char[len2+1];
strcpy(p->address,add);
(p->address)[len2] = '\0';
p->num=new char[len3+1];
strcpy(p->num,pnum);
(p->num)[len3] = '\0';
p->pNext=nullptr;


? ? return p;
}

void Hsah::append(char *pname,char *add,char *pnum)
{

Node * newphone=new Node;
Node * newname=new Node;
newphone=push(pname,add,pnum);
newname=push(pname,add,pnum);
newphone->pNext=nullptr;
newname->pNext=nullptr;

if(phone[hashphone(pnum)].pNext==nullptr)
{
newphone->pNext=phone[hashphone(pnum)].pNext;
? ? phone[hashphone(pnum)].pNext=newphone;
}
else
{
Node *p=phone[hashphone(pnum)].pNext;
while(p->pNext!=nullptr)
{
p=p->pNext;
}
p->pNext=newphone;
}

if(nam[hashname(pname)].pNext==nullptr)
{
newname->pNext=nam[hashname(pname)].pNext;
nam[hashname(pname)].pNext= newname;
}
else
{
Node *p=nam[hashname(pname)].pNext;
while(p->pNext!=nullptr)
{
p=p->pNext;
}
p->pNext=newname;
} ?
}

Node * Hsah::findnum(char *pnum)//按號(hào)碼查找
{
Node *p=phone[hashphone(pnum)].pNext;
while(p!=nullptr)
{
if(strcmp(pnum,p->num)==0)
break;
p=p->pNext;
}?
if(p)
{
cout<<p->name<<" "<<p->num<<" "<<p->address<<endl;
}
else
{
cout<<"沒有此人記錄!"<<endl;
return nullptr;
}


return p;
}

Node * Hsah::findname(char *pname)//按姓名查找
{
Node *p=nam[hashname(pname)].pNext;
while(p!=nullptr)
{
if(strcmp(pname,p->name)==0)
break;
p=p->pNext;
}
if(p)
{
cout<<p->name<<" "<<p->num<<" "<<p->address<<endl;
}
else
{
cout<<"沒有此人記錄!"<<endl;
return nullptr;
}
return p;
}

void ?Hsah::showphone()
{
for(int i=0;i<20;i++)
{
if(phone[i].pNext==nullptr)
{
continue ;
}
else
{
Node *p=phone[i].pNext; //還是phone[i].pNext部位空
while(p)
{


cout<<"姓名:"<<p->name<<endl;
cout<<"電話號(hào)碼:"<<p->num<<endl;
cout<<"住宅地址:"<<p->address<<endl;


p = p->pNext;
}
}
}

}
?
void ?Hsah::showname()
{
for(int i=0;i<20;i++)
{
if(nam[i].pNext==nullptr)
{
continue ;
}
else
{

Node *p=nam[i].pNext; //還是nam[i].pNext部位空
while(p)
{
cout<<"姓名:"<<p->name<<endl;
cout<<"電話號(hào)碼:"<<p->num<<endl;
cout<<"住宅地址:"<<p->address<<endl;
p = p->pNext;
}

}

}
cout<<"請(qǐng)按任意鍵繼續(xù):";
cin.get();
}


3.main函數(shù)測(cè)試

#include"Hsah.h"
int main()
{
Hsah hs;
? // 添加記錄
hs.append("小東","中關(guān)村22號(hào)","15675650786");
hs.append("小智","下家村58號(hào)","15685638912");
? ? ? ? hs.append("小明","詳細(xì)28號(hào)","14226048511") ;
hs.append("小南","月月光45號(hào)","13226856411") ;
? ? ? ? hs.append("小北","明朗小8號(hào)","13205501111") ;
??
cout<<endl;
//按號(hào)碼查找
hs.findnum("15675650786");
hs.findnum("15685638912");

hs.findnum("17584511");
cout<<endl;

//按姓名查找
hs.findname("小明");
hs.findname("小南");

hs.findname("小");

cout<<endl;


? //顯示列表
hs.showphone();
cout<<endl;
hs.showname();
?
system("pause");
return 0;
}

運(yùn)行結(jié)果:


注:該博客為本人第一次書寫,還有很多不足,后續(xù)將一一補(bǔ)齊,如有侵犯到某人的權(quán)利,請(qǐng)聯(lián)系本人,本人立馬刪除!

總結(jié)

以上是生活随笔為你收集整理的简易散列表实现电话号码查询系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲高清无码久久 | 一级视频片| 欧美精品在线一区二区 | 国产福利片一区二区 | a级片视频网站 | 国产91大片 | 久草资源在线 | 激情av中文字幕 | 久久在线中文字幕 | 欧美成人做爰大片免费看黄石 | 成人污污www网站免费丝瓜 | 国产专区自拍 | 天堂国产在线 | 青青草久久伊人 | 久久久老熟女一区二区三区91 | 日韩国产欧美一区二区三区 | 麻豆做爰免费观看 | 国产亚洲精品成人无码精品网站 | 少妇精品久久久一区二区三区 | 影音先锋中文字幕在线播放 | 极品美女销魂一区二区三区 | 午夜视频在线观看免费视频 | 亚洲av永久无码精品一区二区国产 | 久久精品99北条麻妃 | 青青草福利视频 | 蜜桃视频在线入口www | 一区二区免费av | 91官网在线观看 | 免费无码av片在线观看 | 国产又粗又猛又爽又黄无遮挡 | 国产sm网站 | 亚洲午夜18毛片在线看 | 美日韩一区| 日本女人一级片 | 日本高潮视频 | 久草精品在线观看视频 | 综合欧美亚洲 | 欧美日韩亚洲另类 | 国产中文字字幕乱码无限 | 免费看av毛片 | 99久久人妻无码精品系列 | 2019日韩中文字幕mv | 中文字幕日韩精品在线 | 成人黄色片视频 | 蜜桃久久久久久 | 日本四虎影院 | 中文字幕第27页 | 欧美巨乳在线 | 波多野结衣一区二区三区 | 91香蕉视频在线观看免费 | 激情网五月天 | 亚洲区自拍偷拍 | 伊人久久久久久久久久久 | 在线免费观看一区二区三区 | 疯狂做爰的爽文多肉小说王爷 | 综合五月婷 | 久久天天综合 | 国产精品久久久毛片 | 国产69精品久久久久777 | 国产成人精品一区二区三区四区 | 日韩一区二区视频在线播放 | 欧美日韩福利视频 | 成人在线免费高清视频 | xxxxxx国产 | 中文字幕第20页 | 国产精品久久久久久av | 伊人精品视频 | 美女91网站 | 女同亚洲精品一区二区三 | 免费激情网站 | 日韩精品免费在线视频 | 国产传媒视频 | 久久撸视频 | 女女同性高清片免费看 | 中出在线播放 | 欧美bdsm调教视频 | 香蕉视频在线观看免费 | 九一亚洲精品 | 天天色视频 | 国产黄色精品视频 | 久久久人 | 免费特级毛片 | 林雅儿欧洲留学恋爱日记在线 | 精品一区二区免费 | 久久婷婷综合色丁香五月 | 精品人妻一区二区三区四区 | 色噜噜狠狠一区二区三区牛牛影视 | 青青草国产精品视频 | 亚洲欧美日本另类 | 亚洲欧美日韩专区 | 中文无码av一区二区三区 | 国产理论片 | 一级黄色录相 | 激情视频免费观看 | 色哟哟网站在线观看 | 久久久一区二区三区四区 | 国产91精品一区二区绿帽 | 亚洲在线综合 | 我们俩电影网mp4动漫官网 |