加勒比久久综合,国产精品伦一区二区,66精品视频在线观看,一区二区电影

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

CSE2425代寫、C++編程語言代做
CSE2425代寫、C++編程語言代做

時間:2024-12-09  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



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.


請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

掃一掃在手機打開當前頁
  • 上一篇:COMP42215代做、代寫Python設計程序
  • 下一篇:CS-350代寫、C++編程語言代做
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    久久91超碰青草在哪里看| 美女主播精品视频一二三四| 日本蜜桃在线观看视频| 免费福利视频一区| 亚洲图片小说区| 亚洲成人va| 国产精品日本欧美一区二区三区| 视频在线一区| 中文不卡在线| 日韩一级特黄| 国产精品粉嫩| 亚洲欧美日韩国产综合精品二区 | 999精品视频在线观看| 日本久久黄色| 最新成人av网站| 久久久久午夜电影| 亚洲精品中文字幕99999| 麻豆91在线播放| 欧美羞羞视频| 四季av一区二区三区免费观看| 九九综合九九| 精品99在线| 日韩在线视频一区二区三区| 亚洲字幕久久| 日本aⅴ亚洲精品中文乱码| 夜鲁夜鲁夜鲁视频在线播放| 免费xxxx性欧美18vr| 亚洲免费高清| 欧美1区2区| 久久蜜桃资源一区二区老牛| 欧美视频亚洲视频| 日韩成人av在线资源| 国产欧美大片| 国产精品成人**免费视频| 久久精品日韩欧美| 亚洲成人高清| 成人四虎影院| av在线不卡精品| 香蕉成人av| 肉色欧美久久久久久久免费看| 蜜桃一区二区三区四区| 人人爽香蕉精品| 亚洲一卡久久| 男人的天堂成人在线| 中文国产一区| 老牛嫩草一区二区三区日本 | 日韩在线理论| 日韩欧美1区| 成人不卡视频| 久久国产精品美女| 偷拍一区二区| 午夜视频一区二区在线观看 | 日韩三区在线| 99只有精品| 久久91视频| 国产人成精品一区二区三| 久久精品亚洲一区二区| 国产精品porn| 伊人久久大香线蕉综合影院首页| 欧美激情四色| 久久爱www成人| 精品麻豆剧传媒av国产九九九| 亚洲人挤奶视频| 伊人久久噜噜噜躁狠狠躁| 秋霞一区二区| 久久精品国产68国产精品亚洲| 亚洲天堂久久| 一本一本久久| 蜜臀av性久久久久av蜜臀妖精| 波多野一区二区| 国产精品.xx视频.xxtv| 日本视频在线一区| 国产一区二区三区电影在线观看| 精品入口麻豆88视频| 精品国产一区二区三区av片 | 国产精品久久久久久久久免费高清| se01亚洲视频| 日本美女一区二区三区| 欧美猛男男男激情videos| 麻豆一区在线| 婷婷中文字幕一区| 日韩中文字幕av电影| 欧美综合影院| 国产精品亚洲欧美日韩一区在线| 视频在线一区| 亚洲高清影视| 欧美xxxxx视频| 日韩国产精品大片| 无码日韩精品一区二区免费| 理论片一区二区在线| av不卡在线看| 国产一区一一区高清不卡| 亚洲天堂一区二区三区四区| 日本亚洲三级在线| 欧美码中文字幕在线| av中文在线资源库| 日本美女视频一区二区| 免费精品一区| 午夜综合激情| 免费在线欧美黄色| 7777精品| 麻豆9191精品国产| 精品国产黄a∨片高清在线| 国产在线观看91一区二区三区| 欧美综合国产| 久久精品72免费观看| 日韩最新在线| 好看不卡的中文字幕| 日本精品在线中文字幕| 国产精品日韩精品中文字幕| 久久国产免费| 日韩成人综合| 亚洲婷婷丁香| 国产精品入口66mio| av成人在线看| 日韩视频在线直播| 日韩视频一区| 日韩国产高清影视| 国内毛片久久| 在线天堂资源www在线污| 国产亚洲高清在线观看| 欧美一区二区三区激情视频| 神马午夜在线视频| 天美av一区二区三区久久| 国产二区精品| 日韩高清一区在线| 久久国产亚洲精品| a屁视频一区二区三区四区| 日韩经典中文字幕一区| 亚洲一区欧美激情| 91精品福利观看| 成人短片线上看| 免费视频一区二区三区在线观看| 精品久久久中文字幕| 色综合桃花网| 超碰97久久| 日韩欧美大片| 高清欧美性猛交xxxx黑人猛| 日韩伦理在线一区| 日韩va欧美va亚洲va久久| 首页国产欧美日韩丝袜| 国产成人精品三级高清久久91| 女生裸体视频一区二区三区| 欧美淫片网站| 欧美日韩国产高清电影| 日韩高清在线观看| 自拍偷拍欧美| 亚洲自拍偷拍网| 亚洲综合欧美| 午夜a一级毛片亚洲欧洲| 日本一区二区三区视频| 日韩伦理一区二区三区| 中文字幕人成乱码在线观看| 亚洲成av人片在线观看www| 日韩欧美大片| 久久精品123| 国产精品porn| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩123| 黄色在线免费观看网站| 成人在线视频你懂的| 亚洲精品tv| 国模吧视频一区| 国产视频一区二| 国产精品久久久久久| 超碰成人免费| 捆绑调教一区二区三区| 在线亚洲免费| 51vv免费精品视频一区二区| 百度首页设置登录| 加勒比久久综合| 国产日产精品_国产精品毛片| av中文资源在线资源免费观看| 97久久综合精品久久久综合| 欧美成人免费全部网站| 狠狠入ady亚洲精品经典电影| 国产精品亚洲二区| 日韩欧美另类一区二区| 91精品国产乱码久久久久久久| 亚洲国产一区二区三区高清| 日韩在线a电影| 99精品网站| 95精品视频| 特黄毛片在线观看| 亚洲1区在线观看| 99精品久久久| 成人亚洲一区二区| 久久美女性网| 国产精品一区二区精品| 91精品韩国| 99视频精品免费观看| 视频精品一区| 一区二区三区四区日韩| 超碰99在线| 欧美日韩激情| 国产乱人伦丫前精品视频| 亚洲麻豆一区| 欧美视频免费看| 免费成人av在线| 欧美日韩国产免费观看视频|