自己写的单链表
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#include "link.h"/**** 这是一个计算HASH值的算法**/
int time33(char* arKey,int arlength){int h = 0;int i;for(i=0;i<arlength;i++){h = h*33 + (int)*arKey++;}return h;
}//创建节点
struct node* createNode(char* key,char* s)
{int node_key=0;//强制转换,假如使用(void* value)//char* arKey = (char*)key;int len =strlen(key);struct node* new_node=(struct node*)malloc(sizeof(struct node));if(new_node==NULL){printf("内存分配失败\n");}memset(new_node,0,sizeof(new_node));node_key = time33(key,len);new_node->value=node_key;new_node->string=s;new_node->next=NULL;return new_node;
}//新增节点
void add(struct node* head,char* key,char* s)
{struct node* new_node=createNode(key,s);while(head->next!=NULL){head=head->next;}head->next=new_node;
}//搜索节点
char* searchNode(struct node* head,char* key)
{int len = strlen(key);int node_key = time33(key,len);while(head->next!=NULL){if(head->value==node_key){return head->string;}head=head->next;}return NULL;
}//删除节点
int deleteNode(struct node* head,char* key)
{int i=0;int len = strlen(key);int node_key = time33(key,len);while(head->next->next!=NULL){if(head->next->value==node_key){struct node* d_node=head->next;head->next=head->next->next;free(d_node);return i;}i++;head=head->next;}return 0;
}//主文件
int main()
{int d1=0;char* s1;struct node* head=createNode("0","0");add(head,"aa","aaa");add(head,"bb","bbb");add(head,"cc","ccc");add(head,"dd","ddd");add(head,"ee","eee");add(head,"ff","fff");s1=searchNode(head,"cc");d1=deleteNode(head,"bb");return 0;
}
link.h#define HASHSIZE 13
struct node{
int value;
char* string;
struct node* next;
};
相关文章:

假装不知道有尽头(博弈论的诡计)
《笑林广记》中记载这样一则笑话。 有一个人去理发铺剃头,剃头匠给他剃得很草率。剃完后,这人却付给剃头匠双倍的钱,什么也没说就走了。一个多月后的一天,这人又来理发铺剃头。剃头匠还记得他上次多付了钱,觉得此人阔绰…

Java Script 第四节课 Java Script的隐式转换
<!DOCTYPE html><html><head><meta charset"utf-8"><title></title><script type"text/javascript">/*if(exp){exp为true的代码段;}else{exp为false的代码段;}*///其它类型转换成布尔类型假的有var a;//undefin…
深入理解malloc和free
1.为什么free是void*,那么它怎么知道要释放多少内存? 《UNIX环境高级编程》 《C语言编程常见问题解答》 《你必须知道的495个C语言问题》 《UNIX环境高级编程》 2.free源码 内存控制块结构定义 struct mem_control_block {int is_available;int si…

根据IP和MAC查端口
进入交换机的命令提示符.输入show ip arp 查出IP地址跟MAC 地址的对照表.再输入show mac-address-table,看一下这个MAC是从哪个端口学到的转载于:https://blog.51cto.com/124130/271033
“数学不好,干啥都不行!”骨灰级程序员:其实你们都是瞎努力!
之前很多程序员读者向我们反馈:1)数据结构、编程语句,核心原理都是数学,不会数学搞编程好难,后来发现各种东西还要概率论,还要推收敛!近似还要知道泰勒展开!2)做算法优化…

转:秒杀系统架构分析与实战
原文出处: 陶邦仁 欢迎分享原创到伯乐头条 0 系列目录 秒杀系统架构 秒杀系统架构分析与实战1 秒杀业务分析 正常电子商务流程 (1)查询商品;(2)创建订单;(3)扣减库存&a…

Visual Studio中的《C# 语言规范》
无意中的无意发现了个好东西——《C# 语言规范》,您不用到处下载,它就在您的Visual Studio安装目录中,例如:F:\Program Files\Microsoft Visual Studio 9.0\VC#\Specifications\2052\CSharp Language Specification.doc 这是它的目…
超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M
整理 | AI科技大本营光学字符识别(OCR)技术已经得到了广泛应用。比如发票上用来识别关键字样,搜题App用来识别书本上的试题。近期,这个叫做chineseocr_lite的OCR项目开源了,这是一个超轻量级中文ocr,支持竖…
Redis队列的应用
Redis用双链表list实现队列的 LPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表头 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c &…

Python fabric实现远程操作和部署
fabrictitle是开发,但是同时要干开发测试还有运维的活 (o(╯□╰)o)近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多。修复bug什么的,测试,提交版本库(2分钟)&…

自己写的哈希表以及解决哈希冲突
哈希表就是键值key-value对,使用hash函数让key产生哈希值,当不同的key产生相同的哈希值时就是哈希冲突了,产生哈希冲突可以使用拉链法。 hash.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include &…
Python与MySQL数据库的交互实战
作者 | Huang supreme编辑 | 郭芮图源 | 视觉中国安装PyMySQL库如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql;假如这种方式还是安装不上,就用如下链…

Hyper-V的三种网卡
External 虚拟机和物理网络、本地主机都能通信 Internal 虚拟机之间互相通信,并且虚拟机能和本机通信 Private 仅允许运行在这台物理机上的虚拟机之间互相通信

filter-mapping中的dispatcher使用
web.xml里<filter-mapping>中的<dispatcher>作用 2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即 REQUEST,FORWARD,INCLUDE和ERROR 可以在一个<filter-mapping>元素中加入任意数目…
脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
译者 | VincentLee来源 | 晓飞的算法工程笔记脉冲神经网络(Spiking neural network, SNN)将脉冲神经元作为计算单元,能够模仿人类大脑的信息编码和处理过程。不同于CNN使用具体的值(continuous)进行信息传递,SNN通过脉冲序列(discrete)中每个脉冲发射时…

TCMalloc:线程缓存的Malloc
转载自: http://shiningray.cn/tcmalloc-thread-caching-malloc.html作者:Sanjay Ghemawat, Paul Menage 原文 翻译:ShiningRay 动机 TCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试…

今年央视的春晚能给人带来惊喜吗?
已经好多年还没看完中央电视台的春节联欢晚会自己就睡着了,说实在的,现在央视春节联欢晚会的节目总是让人期待后感到相当的平淡乏味,有些搞笑节目庸俗的让人笑不出来,绝大多数的节目都显得非常的人工,全然不能激发出观…

将baidu地图中的baidu logo去掉
Web 最简单方法,将logo的css样式改为display:none即可 <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title>移除百度地图LOGO和版权信息</title><script type"text/javascript" src"htt…

Linux环境网络库
安装libevent 官网:http://libevent.org/ 书籍:http://www.wangafu.net/~nickm/libevent-book/ Libevent参考手册翻译:http://blog.csdn.net/laoyi19861011/article/category/831215 Libevent参考手册翻译增加:http://blog.sina.co…
万人马拉松赛事,人脸识别系统如何快速、准确完成校验?
作者 | 阿里文娱技术专家墨贤出品 | AI科技大本营(ID:rgznai100)大麦的人脸闸机在2019年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场效率上都有了很大的提升,下面介绍一下大麦的人…

Collection集合List、Set
Collection集合,用来保存一组数据的数据结构。 Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:List集合的特征是元素是可重复且有序 Set接口:Set集合的特征是元素是…
如何用Jupyter Notebook制作新冠病毒疫情追踪器?
出品 | AI科技大本营(ID:rgznai100)新冠肺炎已在全球范围内爆发。为了解全球疫情分布情况,有技术人员使用Jupyter Notebook绘制了两种疫情的等值线地图(choropleth chart)和散点图。前者显示了一个国家/地区的疫情扩散…

关于Aptana studio工具
今天,使用了Aptana studio这个工具,界面类似于Myeclipse因使用MyEclipse比较顺手,这个工具上手还挺容易的。而且比Dreamweaver好用多了,有代码提示的工具,再加上工具不大,耗内存较小。挺喜欢这个工具的。写…

再谈JSON -json定义及数据类型
再谈json 近期在项目中使用到了highcharts ,highstock做了一些统计分析。使用jQuery ajax那就不得不使用json, 可是在使用过程中也出现了非常多的疑惑,比方说,什么情况下我们须要去将字符串转换为json对象。什么情况下就不须要转换。通过hql和sql查询返回…

Linux软连接和硬链接
1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【硬连接】 硬连接指通过索引节点来进行连接。在Linux的…

学语言不是写程序!
这是发到我邮箱里面的一封信,嗯,类似的信有好几封,春节期间呢,我主要陪笑笑,呵呵,不办公,就一直压着没有回答,有点delay了,现在给这几位同学抱个歉哈,对不住了…
“AI”战疫在行动,一文盘点百度大脑增援疫情防控的AI操作
2020年春节,注定将刻进每个人的记忆。面对突如其来的新型冠状病毒感染的肺炎疫情,除了一线医护人员的日夜奋战,“人工智能”也在特殊时期走向前沿,接受了抗疫洗礼。 3月13日,今年第一期百度大脑开放日首次通过直播的形…

POJ 2778 AC自己主动机+矩阵幂 不错的题
http://poj.org/problem?id2778 有空再又一次做下,对状态图的理解非常重要 题解: http://blog.csdn.net/morgan_xww/article/details/7834801 另外做了矩阵幂的模板: //ac.sz是矩阵的大小 void mulmtr(long long x[MAXNODE][MAXNODE],long l…

Libevent调用
1.最基本的打印libevent版本 #include <event.h> #include <stdio.h>int main() {const char *version event_get_version();printf("%s\n",version);return 0; }# gcc getVersion.c -o getVersion -levent 参考:https://github.com/mike-zh…