99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

CSE2425代寫(xiě)、C++編程語(yǔ)言代做
CSE2425代寫(xiě)、C++編程語(yǔ)言代做

時(shí)間:2024-12-09  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



CSE2425, C programming lab, course 2020-2021
Final assignment: Hash map
1 Introduction
In this final assignment you will implement a hash map
1
. A hash map is a data
structure that associates a key with a value (a chunk of data). Most hash maps
are implemented as an array of so-called buckets. A hash function translates
a given key (e.g., a name) to an index in the array, where the corresponding
bucket is stored.
Below we will specify the data structures that you have to provide, and the
functions that you have to implement. This assignment includes two bonus
functions that can raise your score from pass (C) to good (B) to excellent (A).
2 Testing
The first part of the assignment consist of implementing a test set for the hash
map. We have created a number of incorrect hash map implementations. The
goal is to create a test set on which these incorrect implementations fail. When
you have finished creating this test set, you can use this test set to test your own
implementation by copy&pasting it into the my tests of the Hashmap assignment
in Weblab.
3 Hash map structure
Define a type HashMap, which represents the hash map data structure.
Note: Use typedef such that a HashMap structure can be used without using
the struct keyword, i.e. the following construction should be possible:
HashMap *hm;
4 Creating a hash map
1. Implement a function create_hashmap that returns a pointer to the newly
constructed HashMap structure and has parameter
ˆ key_space, a size_t
2
that represents the number of buckets in the hash
map.
1http://en.wikipedia.org/wiki/Hashmap
2http://en.wikipedia.org/wiki/Size_t
1CSE2425, C programming lab, course 2020-2021
This function should allocate enough memory to fit key_space buckets, and the
allocated memory should be zeroed (i.e., NULLed).
2. A hash function maps a string (i.e. an array of chars ending with a null
character) to an index, so it returns a unsigned int. The parameter of a hash
function is simply a
ˆ key, a null-terminated string of characters.
As the hash map can only hold up to key_space buckets, using the hash function
–for example to lookup a mapping– requires some care; apply modulo key_space
to the result such that the value will be in the available bucket range.
3. A default hash function named hash should be implemented. This function
should sum all ASCII values of the characters of the key.
For example:
char *key = "AC";
unsigned int h = hash(key);
=> h = 1**
5 Inserting data
Implement a function insert_data that has parameters
ˆ hm, a pointer to a hash map;
ˆ key, a null-terminated string of characters;
ˆ data, a void pointer to the source data;
ˆ resolve_collision, a ResolveCollisionCallback (see below).
The function should store the data pointer and a copy of the key in the bucket
that can be found by applying the hash function on the key. In case of a
collision, i.e. when there already is data with the same key in the hash map, the
resolve_collision function should be called with the the previously stored
data and data as arguments and the returned void pointer should be stored in
the bucket instead.
ResolveCollisionCallback, a pointer to a function that returns a void pointer
and has two parameters:
ˆ old_data, a void pointer to the previously stored data;
ˆ new_data, a void pointer to the data that is being newly inserted.
The function should determine what data is stored in the has map in case of a
key collision by returning the void pointer to the data that is to be stored.
2CSE2425, C programming lab, course 2020-2021
6 Retrieving data
Implement a function get_data that has parameters
ˆ hm, a pointer to a hash map;
ˆ key, a null-terminated string of characters.
The function should return the data pointer (a void pointer) in the hash map
that is associated with the key. If the key is not present in the hash map, NULL
should be returned.
7 Iterator
Implement a function iterate that has parameters
ˆ hm, a pointer to a hash map;
ˆ callback, a pointer to a function that returns nothing (i.e. void) and has
two parameters:
– key, a null-terminated string of characters;
– data, a void pointer to the data.
This function should iterate over the entire hash map. For each data element
it finds, the callback function should be called with the two members of the
element.
8 Removing data
Implement a function remove_data that has parameters
ˆ hm, a pointer to a hash map;
ˆ key, a null-terminated string of characters.
ˆ destroy_data, a DestroyDataCallback (see below).
This function should remove the element in the hash map that is associated with
the given key. If the destroy_data parameter is non-NULL it should be called
with the data pointer of the element as argument. If the key is not present, the
hash map should remain untouched. As the remove_data function cannot fail,
its return type is void.
DestroyDataCallback, a pointer to to a function that returns nothing (i.e.
void) and has one parameter:
ˆ data, a void pointer.
The function should clean up the data (e.g. free allocated memory).
3CSE2425, C programming lab, course 2020-2021
9 Deleting a hash map
Implement a function delete_hashmap that has parameters
ˆ hm, a pointer to the hash map that is to be deleted;
ˆ destroy_data, a DestroyDataCallback (see 8).
The function should deallocate all memory that was allocated by the hash map.
If the destroy_data parameter is non-NULL it should be called for every data
element that is stored in the hash map with the data pointer of the element as
argument.
10 Bonus: New hash function
Implement a function set_hash_function that has parameters
ˆ hm, a pointer to a hash map;
ˆ hash_function, a pointer to a hash function that returns a unsigned int
and a single parameter:
– key, a null-terminated string of characters.
This function should set hash_function as the new hash function of the hash
map hm. Changing the hash function means that a particular key may now be
hashed to different bucket than it was with the previous hash function. The
hash map must be updated (rehashed) to reflect this so that all data in the
hash map can still be retrieved with their corresponding keys.
11 Bonus: Counting Words
Implement a function count_words that has parameters
ˆ stream, a pointer to a FILE.
This function should count the number of times each word in the stream occurs
using the hash map you implemented. A word is defined as a sequence of one or
more alphanumeric characters (case sensitive). You may use fscanf
3
to read a
particular set of characters from a stream but other solutions are also accepted.
The data stored in the hash map should be properly allocated and deallocated,
do not simply store an integer that is cast to a pointer type. The return type
of the function is void.
3http://en.cppreference.com/w/c/io/fscanf
4CSE2425, C programming lab, course 2020-2021
Given the input:
foo bar_, foo!
bar "baz".
foo?
The program should write the following to the standard output:
bar: 2
baz: 1
foo: 3
The order in which the output is printed is not important.
12 Submission
The assignment should be implemented on Weblab.
ˆ All test code should be located in the Testing assignment.
ˆ All hash map code should be located in the Hashmap assignment.
ˆ Put all the word count source code inside the Wordcount assignment;
ˆ If you have implemented the first bonus exercise, add the following macro
to your Hashamp submission:
#define NEW_HASH
ˆ Do not include a main function. (We will use our own test driver, just like
the example test provided.)
Submissions violating the above requirements will be automatically rejected by
the Weblab system.


請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
  • 上一篇:COMP42215代做、代寫(xiě)Python設(shè)計(jì)程序
  • 下一篇:CS-350代寫(xiě)、C++編程語(yǔ)言代做
  • 無(wú)相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評(píng) 開(kāi)團(tuán)工具
    出評(píng) 開(kāi)團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場(chǎng)巴士4號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士4號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士3號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士3號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士2號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士2號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士1號(hào)線(xiàn)
    合肥機(jī)場(chǎng)巴士1號(hào)線(xiàn)
  • 短信驗(yàn)證碼 豆包 幣安下載 AI生圖 目錄網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                日本成人在线不卡视频| 亚洲一区在线观看免费观看电影高清| 欧美国产禁国产网站cc| 欧美夫妻性生活| 久久蜜臀精品av| 日韩欧美一区二区三区在线| 欧美午夜精品理论片a级按摩| 免费的成人av| 国产电影一区在线| 国产精品亚洲视频| 丁香激情综合国产| 韩国三级电影一区二区| 国产一区二区伦理片| 国产凹凸在线观看一区二区| 亚洲免费视频中文字幕| 亚洲狠狠丁香婷婷综合久久久| 精品久久五月天| 欧美日韩成人综合天天影院| 久久久精品tv| 69成人精品免费视频| 欧美不卡一区二区| 亚洲综合一区二区三区| 久久草av在线| 国产大片一区二区| 国产精品亚洲一区二区三区妖精 | 亚洲成人动漫在线观看| 青青国产91久久久久久| 亚洲午夜免费视频| 一区二区三区在线观看网站| 美国毛片一区二区三区| 亚洲美女屁股眼交3| 国产精品日产欧美久久久久| 亚洲国产成人va在线观看天堂| 中文字幕精品一区| 国产乱子伦视频一区二区三区| 天堂在线亚洲视频| 久久99精品国产.久久久久| 日韩av网站免费在线| 色婷婷综合久色| 99精品国产一区二区三区不卡| 国产成人免费9x9x人网站视频| av在线播放不卡| 欧美一区二区精品在线| 亚洲精品日韩综合观看成人91| 国产精品女人毛片| av男人天堂一区| 日韩欧美国产一二三区| 亚洲男同1069视频| 91在线免费看| 欧美激情一区二区三区蜜桃视频| 日本一区二区三区免费乱视频| 欧美撒尿777hd撒尿| 日韩女同互慰一区二区| 亚洲午夜电影在线观看| www.爱久久.com| 亚洲精品中文在线| 成人教育av在线| 国产亚洲福利社区一区| av电影在线观看完整版一区二区| 色婷婷国产精品| 欧美精品三级在线观看| 亚洲午夜精品17c| 国产丶欧美丶日本不卡视频| 日本丶国产丶欧美色综合| 欧美激情综合网| 婷婷中文字幕一区三区| 欧美日本不卡视频| 亚洲福利一区二区| 欧美日韩一区二区三区视频| 亚洲午夜久久久| 欧美三级中文字幕| 欧美老肥妇做.爰bbww| 激情综合五月婷婷| 久久婷婷久久一区二区三区| 日韩欧美在线1卡| 国产精品亚洲第一 | 精品美女一区二区三区| 99久久99久久久精品齐齐| 亚洲女厕所小便bbb| 欧美性受xxxx黑人xyx| 欧美一区二区三区电影| 美美哒免费高清在线观看视频一区二区 | 久草热8精品视频在线观看| 欧美区视频在线观看| 天堂资源在线中文精品| 9191久久久久久久久久久| 亚洲国产日韩av| 91麻豆精品国产91久久久久久| 国产精品高潮呻吟| 精品免费一区二区三区| 国产美女精品人人做人人爽| 欧美色精品在线视频| 国产欧美视频一区二区| 91精品国产综合久久福利软件 | 国产精品白丝在线| 91精品国产综合久久蜜臀| 99精品欧美一区二区蜜桃免费| 国产目拍亚洲精品99久久精品| 日本不卡一区二区| 日韩av高清在线观看| 亚洲三级在线播放| 日韩一区二区三区电影| 一区二区三区四区不卡视频| 中文字幕精品在线不卡| 欧美一卡2卡三卡4卡5免费| eeuss鲁片一区二区三区| 亚洲超碰97人人做人人爱| 精品欧美一区二区三区精品久久| 日本亚洲电影天堂| 日韩免费观看高清完整版| 成人开心网精品视频| 国产欧美一区二区精品秋霞影院| 国产传媒久久文化传媒| 日韩激情中文字幕| 亚洲免费三区一区二区| 日韩精品最新网址| 国产精品一区久久久久| 久久久久九九视频| 欧美三区在线观看| 国产91精品一区二区| 日韩精品91亚洲二区在线观看| 精品久久久久久无| 欧美精三区欧美精三区| 欧美性受极品xxxx喷水| www.欧美色图| 欧美日韩激情在线| 免费在线一区观看| 韩国av一区二区三区四区| 亚洲大型综合色站| 国产日本亚洲高清| 中文av字幕一区| 国产亚洲精品aa午夜观看| 一本色道亚洲精品aⅴ| 国产91在线|亚洲| 裸体健美xxxx欧美裸体表演| 26uuu国产一区二区三区| ww亚洲ww在线观看国产| 亚洲精品一区二区三区蜜桃下载| 99久久精品国产一区| 欧美系列在线观看| 91免费视频网| 色噜噜偷拍精品综合在线| 欧美视频一区二区三区四区| 极品少妇xxxx偷拍精品少妇| 看电影不卡的网站| 高清日韩电视剧大全免费| 成人h版在线观看| www.99精品| 欧美色偷偷大香| 成人污视频在线观看| 成人免费视频网站在线观看| 精品中文字幕一区二区| 亚洲一区二区三区中文字幕在线| 欧美zozozo| 亚洲黄色性网站| 美国三级日本三级久久99| 亚洲成av人片一区二区| 国产精品99久久不卡二区| 北岛玲一区二区三区四区| 日本高清视频一区二区| 久久精品免视看| 亚洲精品ww久久久久久p站| 日韩av高清在线观看| 色综合久久六月婷婷中文字幕| 成人午夜视频网站| 欧美性猛交xxxx黑人交| 国产亚洲视频系列| 一级中文字幕一区二区| 亚洲人123区| 午夜精品久久久久久久久| 国产精品一区2区| 欧美综合一区二区三区| 国产精品三级视频| 亚洲成人福利片| 成人精品免费视频| 久久久久国产一区二区三区四区| 欧美日韩高清一区| 久久久久久久久久久久电影| 欧美韩国日本综合| 亚洲成人精品影院| 成人av电影免费在线播放| 日韩三级免费观看| 日韩一区二区三区视频| 中文字幕国产精品一区二区| 在线视频综合导航| 日韩一区二区三区免费看| 亚洲你懂的在线视频| 国产麻豆91精品| 久久久久久久久伊人| 视频在线观看91| 成人高清视频在线| 综合久久国产九一剧情麻豆| 极品美女销魂一区二区三区 | 亚洲精选一二三| 奇米一区二区三区av| 欧美日韩一区二区不卡| 最新国产成人在线观看| 日本欧美在线观看| 国产福利精品导航| 2023国产精华国产精品|