首页 > 其他 > 详细

哈希表2

时间:2017-09-29 15:33:07      阅读:213      评论:0      收藏:0      [点我收藏+]
/****************************************************************************************
******功    能:遍历哈希表获取所有的用户名和电话号码
******输入参数:userName表示要查询的用户名
******          phoneNumberFound 用来存放查找到的电话号码(由调用者保证空间足够大)
******返 回 值:-1参数错误,0成功遍历,遍历结果放到全局变量userAndPhone内
*****************************************************************************************/
int getAllUserAndPhone()
{
    if (userCnt <= 0)
    {
        printf("invalid userCnt[%d].\n", userCnt);
        return ERROR_PARAMETER;
    }
    /* 先清空已保存的userAndPhone */
    if (NULL != userAndPhone)
    {
        free(userAndPhone);
        userAndPhone = NULL;
    }
    
    userAndPhone = (UserAndPhone*)malloc(userCnt * sizeof(UserAndPhone));
    
    PhoneBook *s, *tmp;
    int i = 0;
    HASH_ITER(hh, users, s, tmp)
    {  
        if (i == userCnt)        /* 保证数组不越界 */
        {
            return SUCCESS;
        }
        strcpy(userAndPhone[i].userName, s->userName);
        strcpy(userAndPhone[i].phoneNumber, s->phoneNumber);
        ++i;
    } 
    return SUCCESS;
}

/****************************************************************************************
******功    能:删除哈希表以及已遍历的所有的用户名和电话号码
******输入参数:无
******返 回 值:0成功删除
*****************************************************************************************/
int deleteAllUserAndPhone()
{
    if (NULL != userAndPhone)
    {
        free(userAndPhone);    
        userAndPhone = NULL;
    }
    PhoneBook *s, *tmp;
    /* free the hash table contents */  
    HASH_ITER(hh, users, s, tmp) 
    {  
      HASH_DEL(users, s);  
      free(s);  
    }
    userCnt = 0;
    users = NULL;
    return SUCCESS;
}

 

哈希表2

原文:http://www.cnblogs.com/gardonkoo/p/7611182.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!