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

📄 ch7_4.c

📁 一个很好的数据结构(C语言版)讲义。附带全部所需算法源码。
💻 C
字号:
#include <stdio.h>
#define M 16

int h(int k)
{  return(k%13);
}

int slbxxcz(int t[],int k)
{  int i,j=0;
   i=h(k);
   while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]!=0))
      j++;
   i=(i+j)%M;
   if(t[i]==k)  return(i);
   else  return(-1);
}

int slbxxcr(int t[],int k)
{  int i,j=0;
   i=h(k);
   while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]>0))
      j++;
   if(j==M)  return(0);
   i=(i+j)%M;
   if(t[i]<=0)
   {  t[i]=k;  return(1); }
   if(t[i]==k) return(1);
}

int slbxxsc(int t[],int k)
{  int i,j=0;
   i=h(k);
   while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]!=0))
      j++;
   i=(i+j)%M;
   if(t[i]==k)
   {   t[i]=-1; return(1); }
   return(0);
}

void main()
{   int i,n=12;
    int key[]={19,14,23,1,68,20,84,27,55,11,10,79};
    static int hash_table[M];
    for(i=0;i<n;i++)
       slbxxcr(hash_table,key[i]);
    printf("\n");
    for(i=0;i<M;i++)
       printf("%d  ",hash_table[i]);
    i=slbxxcz(hash_table,79);
    if(i==-1)
	 printf("\nNot found");
    else
	 printf("\n%d\n",i);
    slbxxsc(hash_table,19);
    slbxxsc(hash_table,27);
    printf("\n");
    for(i=0;i<M;i++)
       printf("%d  ",hash_table[i]);
    i=slbxxcz(hash_table,27);
    if(i==-1)
	 printf("\nNot found");
    else
	 printf("\n%d\n",i);

}

⌨️ 快捷键说明

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