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;">

                色999日韩国产欧美一区二区| 精品免费国产一区二区三区四区| 欧美日韩小视频| 久久精品亚洲乱码伦伦中文 | 中文字幕一区二区三区在线观看| 国产精品自拍毛片| 欧美精品一区二区三区蜜臀 | 老司机午夜精品| 日韩一级完整毛片| 久久99九九99精品| 国产午夜亚洲精品不卡| 亚洲人成电影网站色mp4| 亚洲成人av一区| 亚洲国产成人av网| 一区二区三区精品在线观看| 亚洲激情五月婷婷| a级高清视频欧美日韩| 国产精品福利一区二区| 色狠狠色噜噜噜综合网| 三级在线观看一区二区 | 精品999在线播放| 韩国成人精品a∨在线观看| 久久夜色精品国产欧美乱极品| 国产中文一区二区三区| 中文字幕av不卡| 色www精品视频在线观看| 日韩电影在线免费| 国产亚洲一区二区在线观看| 91亚洲男人天堂| 亚洲成av人片| 国产亚洲一区二区三区在线观看| 色国产精品一区在线观看| 日韩成人免费在线| 国产精品色呦呦| 欧美日韩大陆在线| 国产精品一区二区你懂的| 亚洲少妇最新在线视频| 欧美一级一区二区| 成人精品在线视频观看| 日韩精品三区四区| 中文字幕在线一区| 欧美一二三四在线| 色婷婷综合久久久中文字幕| 久久99精品久久久久婷婷| 日韩一区二区在线观看视频播放| 亚洲乱码国产乱码精品精小说| 亚洲激情在线激情| 国产综合久久久久影院| 欧美高清视频不卡网| 欧美一级国产精品| 国产欧美日韩三区| 国产精品一区专区| 精品国产乱码91久久久久久网站| 中文成人综合网| 色狠狠av一区二区三区| 久久精品理论片| 亚洲精品美国一| 国产日韩欧美综合在线| 88在线观看91蜜桃国自产| 北条麻妃国产九九精品视频| 黄色资源网久久资源365| 亚洲国产精品久久艾草纯爱| 国产精品美女久久久久高潮| 精品免费视频.| 不卡一二三区首页| 一区二区三区在线不卡| 国产欧美日韩麻豆91| 欧美一区二区视频免费观看| 欧美熟乱第一页| 色哟哟一区二区三区| 国产白丝网站精品污在线入口| 免费精品视频在线| 午夜精品久久久久久久久久久| 亚洲色欲色欲www在线观看| 国产情人综合久久777777| 日韩欧美一区在线| 欧美情侣在线播放| 在线观看视频91| 99re66热这里只有精品3直播| 国产99精品国产| 国产成人一区在线| 久久99精品久久久久久| 五月婷婷欧美视频| 五月天欧美精品| 日韩高清在线一区| 捆绑紧缚一区二区三区视频| 日韩有码一区二区三区| 亚洲最新在线观看| 亚洲香肠在线观看| 亚洲男人都懂的| 一区二区视频在线看| 最新不卡av在线| 伊人婷婷欧美激情| 亚洲aaa精品| 婷婷一区二区三区| 日本免费在线视频不卡一不卡二| 五月婷婷欧美视频| 久久er精品视频| 韩国av一区二区| 国产成人在线影院| 成人黄色电影在线| 色狠狠av一区二区三区| 欧美性生活久久| 欧美日韩在线播放| 91精品国产入口| 久久亚洲精品小早川怜子| 国产午夜精品一区二区| 综合网在线视频| 亚洲综合一区二区| 日韩国产精品久久久| 久久精品72免费观看| 国产91丝袜在线18| 94-欧美-setu| 欧美日韩精品三区| 日韩精品在线一区二区| 中文幕一区二区三区久久蜜桃| 亚洲欧美日韩国产一区二区三区| 美女mm1313爽爽久久久蜜臀| 黄色小说综合网站| 色综合天天视频在线观看| 欧美亚洲日本国产| 精品成人佐山爱一区二区| 国产精品狼人久久影院观看方式| 洋洋av久久久久久久一区| 蜜桃一区二区三区四区| 不卡一区二区三区四区| 欧美日本乱大交xxxxx| 精品sm捆绑视频| 亚洲男同1069视频| 久久精品国产澳门| va亚洲va日韩不卡在线观看| 在线不卡的av| 国产精品污污网站在线观看 | 日产欧产美韩系列久久99| 国产精品羞羞答答xxdd| 欧美亚洲精品一区| 日本一区二区高清| 亚洲成av人片一区二区| 成人网页在线观看| 欧美一区二区三区的| 亚洲色欲色欲www| 久久福利视频一区二区| 日本精品视频一区二区三区| 久久综合久久综合九色| 亚洲bt欧美bt精品| 不卡视频在线观看| 久久亚洲私人国产精品va媚药| 亚洲一卡二卡三卡四卡五卡| 成人一区在线看| 日韩美女天天操| 亚洲午夜久久久久久久久电影院| 狠狠色丁香久久婷婷综| 欧美精品高清视频| 日韩理论电影院| 国产成人综合视频| 欧美一区二区三区在线视频| 曰韩精品一区二区| 成人国产亚洲欧美成人综合网| 精品久久国产97色综合| 婷婷国产在线综合| 91久久精品一区二区三| 欧美激情在线一区二区| 国产一区二区视频在线| 欧美一区二区在线免费观看| 婷婷夜色潮精品综合在线| 日本丶国产丶欧美色综合| 一区在线观看免费| 日本网站在线观看一区二区三区| 91国偷自产一区二区开放时间 | 日韩电影在线免费看| 一本到不卡免费一区二区| 国产精品视频你懂的| 国产精品88av| 久久精品视频一区二区| 日韩成人午夜精品| 欧美精品在线观看一区二区| 亚洲国产va精品久久久不卡综合| 91女人视频在线观看| 最新欧美精品一区二区三区| www.色综合.com| 国产精品乱人伦中文| 成人午夜av在线| 亚洲欧洲一区二区三区| 成人app在线观看| 欧美性受极品xxxx喷水| 亚洲视频香蕉人妖| 色一区在线观看| 一区二区三区精品| 色综合色综合色综合色综合色综合| 国产精品视频你懂的| 亚洲高清免费观看高清完整版在线观看| 国产一区二区免费视频| 亚洲精品一区二区三区福利| 肉肉av福利一精品导航| 日韩欧美在线不卡| 高清不卡一二三区| 一区二区三区四区乱视频| 精品久久人人做人人爽| 亚洲国产成人porn| 国产午夜精品久久久久久免费视|