博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分离链接法的删除操作函数
阅读量:7177 次
发布时间:2019-06-29

本文共 2087 字,大约阅读时间需要 6 分钟。

裁判测试程序样例:

1 #include 
2 #include
3 4 #define KEYLENGTH 15 /* 关键词字符串的最大长度 */ 5 typedef char ElementType[KEYLENGTH+1]; /* 关键词类型用字符串 */ 6 typedef int Index; /* 散列地址类型 */ 7 typedef enum {
false, true} bool; 8 9 typedef struct LNode *PtrToLNode;10 struct LNode {11 ElementType Data;12 PtrToLNode Next;13 };14 typedef PtrToLNode Position;15 typedef PtrToLNode List;16 17 typedef struct TblNode *HashTable; /* 散列表类型 */18 struct TblNode { /* 散列表结点定义 */19 int TableSize; /* 表的最大长度 */20 List Heads; /* 指向链表头结点的数组 */21 };22 23 Index Hash( ElementType Key, int TableSize )24 {25 return (Key[0]-'a')%TableSize;26 }27 28 HashTable BuildTable(); /* 裁判实现,细节不表 */29 bool Delete( HashTable H, ElementType Key );30 31 int main()32 {33 HashTable H;34 ElementType Key;35 36 H = BuildTable(); 37 scanf("%s", Key);38 if (Delete(H, Key) == false)39 printf("ERROR: %s is not found\n", Key);40 if (Delete(H, Key) == true)41 printf("Are you kidding me?\n");42 return 0;43 }44 45 /* 你的代码将被嵌在这里 */

 

1 bool Delete( HashTable H, ElementType Key ) 2 { 3     int HashPos = Hash(Key, H->TableSize); 4     PtrToLNode p = H->Heads[HashPos].Next; 5      6     /* 链表为空  */ 7     if(p == NULL) 8         return false; 9         10     /* 删除第一个元素 */11     if(!strcmp(p->Data, Key))  12     {13         H->Heads[HashPos].Next = p->Next;14         p->Next = NULL;15         free(p);16         printf("%s is deleted from list Heads[%d]", Key, HashPos);17         return true;18     }19     20     /* 删除非第一个元素 */21     PtrToLNode q = p;22     p = p->Next;23     while(p)24     {25         if(!strcmp(p->Data, Key))  26         {27             q->Next = p->Next;28             p->Next = NULL;29             free(p);30             31             printf("%s is deleted from list Heads[%d]", Key, HashPos);32             return true;33         }34         q = p;35         p = p->Next;36     }37     /* 没找到 */38     return false;39 }

 

转载于:https://www.cnblogs.com/FengZeng666/p/9826261.html

你可能感兴趣的文章
前端面试题(五)安全篇
查看>>
【刘文彬】【精解】EOS智能合约演练
查看>>
Web前端的发展前景真的这么好吗?
查看>>
调用微信公众号接口上传图片素材
查看>>
源码里面没有引入广告,但是访问网站时却能看到广告,该如何删除广告?
查看>>
我的友情链接
查看>>
Linux考证模拟试题二(含答案)
查看>>
Struts2优化
查看>>
我的友情链接
查看>>
浅谈Android五大布局
查看>>
安装SQL Server 2017
查看>>
composer 安装 Yii2 的坑
查看>>
underscore.js 模板扩展
查看>>
十个必不可少的网络安全测试工具
查看>>
有序矩阵中第k小的元素
查看>>
IKAnalyzer 3.2.8 报错问题解决办法
查看>>
我的友情链接
查看>>
思达报表工具Style Report基础教程—在数据块中设置Where、Having条件
查看>>
计算机领域最新技术报告:云数据库
查看>>
ora-01658 unable to create initial extent for segment in tablespace
查看>>