Design HashMap.
来源:互联网 发布:网络伤感情歌排行榜 编辑:程序博客网 时间:2024/05/22 13:32
// use linked list for chaining.class LinkedHashEntry {private: int key; int value; LinkedHashEntry* next;public: LinkedHashEntry(int key, int value) { this->key = key; this->value = value; this->next = NULL; } int getKey() { return key; } int getValue() { return value; } void setValue(int value) { this->value = value; } LinkedHashEntry* getNext() { return next; } void setNext(LinkedHashEntry *next){ this->next = next; }}const int TABLE_SIZE = 128;class HashMap {private: LinkedHashEntry **table;public: HashMap() { table = new LinkedHashEntry*(TABLE_SIZE); for(int i = 0; i < TABLE_SIZE; ++i) { table[i] = NULL; } } int get(int key) { int hashValue = key %.. if(table[hashValue] == NULL) { return -1; } else { LinkedHashEntry* entry = table(hashValue); while(entry != NULL && entry->getKey() != key) { entry = entry->getNext(); } if(entry == NULL) return -1; else return entry->getValue(); } } void put(int key, int value) { int hashValue = key %... if(table[hashValue] == NULL) { table[hashValue] = new LinkedHashEntry(key, value); } else { LinkedHashEntry *entry = table[hashValue]; while(entry->getNext() != NULL) { entry = entry->getNext(); if(entry->getKey() == key) {entry->setValue(value);} else entry->setNext(new LinkedHashEntry(key, value)); } } void remove(int key) { int hashValue = key % ... if(table[hashValue]) { LinkedHashEntry *prevEntry = NULL; LinkedHashEntry* entry = table[hashValue]; while(entry->getNext() && entry->getKey() != key) { prevEntry = entry; entry = entry->getNext(); } if(entry->getKey() == key) { if(prevEntry == NULL) { LinkedHashEntry* nextEntry = entry->getNext(); delete entry; table[hash] = nextEntry; } else { LinkedHashEntry *next = entry->getNext(); delete next; prevEntry->setNext(next); } } } } ~HashMap() { for(int i = 0; i < TABLE_SIZE; ++i) { if(table[i] != NULL) { LinkedHashEntry* prevEntry = NULL; LinkedHashEntry* entry = table[i]; while(entry) { prevEntry = entry; entry = entry->getNext(); delete prevEntry; } } } delete[] table; }}
0 0
- Design HashMap.
- design a HashMap for js
- Very Important:How to design HashMap
- Design a HashMap class in C++. Implement put, get methods.
- design
- design
- design
- Design
- design
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- libAFNetworking.a(AFHTTPRequestOperation.o)' does not contain bitcode.
- Android之BroadcastReceiver(四):使用本地广播
- you must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obta
- 链接器做什么
- java中四种访问权限
- Design HashMap.
- iOS中使用钥匙串
- iOS 9适配技巧(更新版)
- 源码推荐(9.30):iOS 9 新特性的代码示例,Crash捕捉 崩溃捕捉
- 虚拟内存 知识点整理
- UIInterfaceOrientation和UIDeviceOrientation的区别
- 给 Android 开发者的 RxJava 详解
- 组合计数笔记
- Linux下XAMPP的部署