zoukankan      html  css  js  c++  java
  • Hash表API

    #include <stdio.h>
    #define SIZE 100000
    typedef struct node{
        int key;
        struct node* next;
        struct node* pre;
    }Node;
    
    Node HashTable[SIZE + 10];
    Node HashPool[SIZE + 10];
    int HashIndex = 0;
    
    Node* getnew(){
        return &HashPool[HashIndex++];
    }
    
    void insertnode(int key, Node*newnode){
    
        Node * dst = &HashTable[key];
    
        newnode->pre = dst;
        newnode->next = dst->next;
        
        dst->next = newnode;
        dst->next->pre = newnode;
    
    }
    
    int getkey(int val){
        return val % (SIZE + 3);
    }
    
    void deletenode(Node*x){
    
        x->pre->next = x->next;
        x->next->pre = x->pre;
    
    }
    
    Node* searchnode(Node* node){
        
        int key = getkey(node->key);
        Node* x = HashTable[key].next;
        while (x != &HashTable[key] && x->key != key){
            x = x->next;
        }
        return x;
    
    }
    
    void initHash(){
    
        HashIndex = 0;
        for (int i = 0; i < SIZE; i++){
            HashTable[i].key = 0;
            HashTable[i].next = &HashTable[i];
            HashTable[i].pre = &HashTable[i];
        }
    
    }
    int main(){
    
        initHash();
        for (int i = 10000; i < 40000; i++){
            Node*newnode = getnew();
            newnode->key = i;
            int hashkey = getkey(i);
            insertnode(hashkey,newnode);
    
            Node *node = searchnode(newnode);
            printf("%x %d
    ",node,node->key);
        }
    
        return 0;
    }
    大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
  • 相关阅读:
    java知识总结-15
    java知识总结-14
    java知识总结-13
    Java知识总结-12
    Java知识总结-11
    Java知识总结-10
    Java知识总结-9
    Java知识总结-8
    Java知识总结-7
    SSO
  • 原文地址:https://www.cnblogs.com/linux0537/p/7598907.html
Copyright © 2011-2022 走看看