⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashi_sepchaining.c

📁 This is a binary search tree with void* pointer in data segment in order you to search store and del
💻 C
字号:
#include "hashi_sepchaining.h"#include <stdlib.h>#include <stdio.h>int testhash(int k) {  return k%50;}hashTable *CreateNew_hs(void){  hashTable* p = malloc(sizeof(hashTable));  p->keysize = 50;  p->totalsize = 0;  int i;  for(i=0;i<50;i++){    (p->keyTable[i]) = CreateNew();  }  //add hashi fun  p->hashfun = testhash;  return p;}int Insert_hs (int id,int type,int size,hashTable *h){  int index = h->hashfun(id);  Insert_sl(id,type,size,h->keyTable[index]);  h->totalsize++;}Node_sl* Delete_hs(int id , hashTable* h){  int index = h->hashfun(id);  Delete_sl(id,h->keyTable[index]);  h->totalsize--;}Node_sl* Find_hs(int id , hashTable* h){  int index = h->hashfun(id);  return Find_sl(id, h->keyTable[index]);}void print_hs(hashTable* h){  int i;  for(i=0;i<50;i++){      printf("%d ->>",i);      print_sl(h->keyTable[i]);      printf("\n");   }}void merge_hs(Node_sl *array[], int p, int q, int r) {  int n1 = q-p+1;  int n2 = r-q;  Node_sl *right = malloc(sizeof(Node_sl*)*(n1+1));  Node_sl *left = malloc(sizeof(Node_sl*)*(n2+1));  int i,k,j;  for(i=0; i<n1; i++){    left++;    left = array[p+i];  }  for(i=0; i<n2; i++){    right++;    right = array[q+1+i];  }  i=0;  j=0;  left[n1].size = 0xFFFFFFFF;  right[n2].size = 0xFFFFFFFF;  for(k=p; k<=r; k++){    if(left[i].size < right[j].size) {      array[k] = (left+i);      i++;    }    else {      array[k] = (right+j);      j++;    }  }  }void MergeSrt(Node_sl *array[], int p, int r) {  if(p<r){    int q = (p+r)/2;    MergeSrt(array,p,q);    MergeSrt(array,q+1,r);    merge_hs(array,p,q,r);  }}void printOrdered_hs(hashTable *h) {  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -