哈希表电话本问题求大神解决

问题描述

哈希表电话本问题求大神解决

各位大神,我不知道要怎么把这些代码给组合起来

void InHash(pointer p[])
{

    pointer t=new HsNode();
    cout<<"输入用户姓名:";
    cin>>t->Name;

    cout<<"输入用户号码:";
    cin>>t->PhoneNumber;

    cout<<"输入用户地址:";
    cin>>t->Address;
    t->next=NULL;

    int a=Sum(t->PhoneNumber);
    int b=a%7;
    if(p[b]==NULL)
    {
        p[b]=t;
    }
    else
    {
        pointer r;
        r=p[b];
        while(r->next!=NULL)
        {
            r=r->next;
        }
        r->next=t;
    }
}
void OutHash(pointer p[],char ch[])
{
    int a=Sum(ch);
    int b=a%7;
    pointer r=p[b];
    if(!strcmp(r->PhoneNumber,ch))
    {
        p[b]=r->next;
        delete r;
        return;
    }
    pointer s=r;
    while(1)
    {
        r=r->next;
        if(!strcmp(r->PhoneNumber,ch))
        {
            s->next=r->next;
            delete r;
            return;
        }
        else
        {
            s=r;
        }
    }
}
void SearchHash(pointer p[],char ch[])
{
    int a=Sum(ch);
    int b=a%7;
    pointer r=p[b];
    if(r==NULL)
    {
        cout<<"没有该号码。"<<endl;
        return;
    }
    if(!strcmp(r->PhoneNumber,ch))
    {
        cout<<"其他信息为:"<<endl;
        cout<<"姓名为:"<<r->Name<<endl;
        cout<<"地址为:"<<r->Address<<endl;
        return;
    }
    if(r!=NULL&&r->next==NULL)
    {
        cout<<"没有该号码。"<<endl;
        return;
    }
    pointer s=r;
    while(1)
    {
        r=r->next;
        if(!strcmp(r->PhoneNumber,ch))
        {
            cout<<"其他信息为:"<<endl;
            cout<<"姓名为:"<<r->Name<<endl;
            cout<<"地址为:"<<r->Address<<endl;
            return;
        }
        else if(r->next==NULL)
        {
            cout<<"没有该号码。"<<endl;
            return;
        }
        else
        {
            s=r;
        }
    }
}
时间: 2024-09-24 23:24:25

哈希表电话本问题求大神解决的相关文章

mysql-数据库中的关系表有什么作用 求大神解惑

问题描述 数据库中的关系表有什么作用 求大神解惑 其中一张表叫做关系表,它内部只有两个字段,但全是id,一个是cid,一个是uid 其中两个id都是其他表的主键 我只想问这样记录下他们的id有什么用 或者 说这样关系表存在的意义是什么啊 真心求大神解答 解决方案 实现了一个1:1的关系,这种设计可能是为了把一个表拆开,也可能有历史原因而需要保持原来表的结构不变而增加新的字段. 解决方案二: 可以实现1对多和多对多的关联 例如:a表为用户表 b表为角色表 c表为关系表 通过c表可以实现 一个用户有

无线路由器低电-无线路由器串口下报错,在线求大神解决!!

问题描述 无线路由器串口下报错,在线求大神解决!! 一直报HSIC-USB in low power mode,求怎么退出低电模式,谢谢 解决方案 http://zhidao.baidu.com/link?url=vMCO-E0_utuzonHcMnZ-xoPinvjbujhVRmGBvNbLt8Pw8Jnz4BbOFjSrxv5I4oB-hEAwn3iajiIB6p-p3bUcEIn-Ev8KjeegkR7i85MVB6G

使用ext提交表单出错,求大神帮忙

问题描述 使用ext提交表单出错,求大神帮忙 jsp页面代码如下: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or

数据库表结构更改,求大神!!

问题描述 数据库表结构更改,求大神!! 我现在要给一张表更改一个索引,由于表中的数据量过大,加这个索引需要半个小时,请问在此期间,会不会影响系统运行呢,因为这个索引对系统运行效率非常重要,如果没有这个索引,系统的部分功能将会超时. 解决方案 当然会有影响. 你可以先切一个备份,在备份里面加好索引,然后再切回来.

javascript正则式表单验证,求大神帮看看问题出在那。

问题描述 javascript正则式表单验证,求大神帮看看问题出在那. 为什么我function show函数组为什么不起作用,输入错了也能跳转到2.html.提示也没有. 解决方案 show函数怎么写的,一行都看不到.哪有你这样提问的. 解决方案二: 你用的什么浏览器?这个问题改正了么有?http://ask.csdn.net/questions/231266 解决方案三: 你确定提交成功了?你打个断点看看 解决方案四: 因为你把js写在下面了,你把js放在 的上方应该就可以了,祝你好运 解决

如何做字典表查询啊,求大神带我飞

问题描述 如何做字典表查询啊,求大神带我飞 如何做字典表查询,做字典表查询都需要会什么技术,都涉及哪些方面,做字典表查询的步骤 解决方案 你这个字典表指的是什么?数据库中建的字典表,还是编程语言中的Dictionary? 如果是前者,用sql就行了,如果是后者,dic有扩展方法可以查询. 解决方案二: Dictionary dict = new Dictionary(); dict.Add(1, "abc"); dict.Add(2, "def"); string

jta-我不知道如何在netbean中给表赋值!!求大神

问题描述 我不知道如何在netbean中给表赋值!!求大神 public void QueryAll() { SAXReader reader=new SAXReader(); String classPath=ClassLoader.getSystemResource("").getPath(); System.out.println(classPath); filename=classPath+"students.xml"; File file=new File

将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,求大神指导一下!!!!!!

问题描述 将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,求大神指导一下!!!!!! 将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,项目数目和管理员数目个数是不定的,只能从数据库中读取,下面不知道怎么写了???? using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebCon

oracle10错误-求大神解决,怎么检索条件?

问题描述 求大神解决,怎么检索条件? 照片里面的第4条,检索以开头的人员,求大神解决啊 解决方案 select * from 表 where 字段 like ""L%"" -- 以L开头 解决方案二: 求大神啊!!!!!真心不会做 解决方案三: 检索姓名以L开头的 select sname age from s where sname like ""L%""