范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

与ChatGPT对话请用C语言写一个基于内存的缓存系统

  下面是一个简单的基于内存的缓存系统,使用哈希表来实现快速查找和更新缓存。此缓存系统支持添加缓存、删除缓存、查找缓存以及打印缓存的功能。#include  #include  #include   #define MAX_CACHE_SIZE 100 #define HASH_SIZE 10  typedef struct node {     char key[50];     char value[50];     struct node* next; } node_t;  node_t* hash_table[HASH_SIZE];  // 计算哈希值 unsigned int hash_func(char* key) {     unsigned int hashval = 0;     for (int i = 0; key[i] != ""; i++) {         hashval = key[i] + (hashval << 5) - hashval;     }     return hashval % HASH_SIZE; }  // 查找缓存 node_t* lookup(char* key) {     unsigned int hashval = hash_func(key);     node_t* node = hash_table[hashval];      while (node != NULL) {         if (strcmp(key, node->key) == 0) {             return node;         }         node = node->next;     }      return NULL; }  // 添加缓存 void add_cache(char* key, char* value) {     node_t* node = (node_t*)malloc(sizeof(node_t));     strcpy(node->key, key);     strcpy(node->value, value);      unsigned int hashval = hash_func(key);     node->next = hash_table[hashval];     hash_table[hashval] = node; }  // 删除缓存 void delete_cache(char* key) {     unsigned int hashval = hash_func(key);     node_t* node = hash_table[hashval];     node_t* prev = NULL;      while (node != NULL) {         if (strcmp(key, node->key) == 0) {             if (prev == NULL) {                 hash_table[hashval] = node->next;             } else {                 prev->next = node->next;             }             free(node);             return;         }         prev = node;         node = node->next;     } }  // 打印所有缓存 void print_cache() {     for (int i = 0; i < HASH_SIZE; i++) {         node_t* node = hash_table[i];         while (node != NULL) {             printf("%s: %s ", node->key, node->value);             node = node->next;         }     } }  int main() {     char key[50];     char value[50];     int choice;      while (1) {         printf("请选择功能: ");         printf("1. 添加缓存 ");         printf("2. 删除缓存 ");         printf("3. 查找缓存 ");         printf("4. 打印缓存 ");         printf("5. 退出程序 ");         scanf("%d", &choice);          switch (choice) {             case 1:                 if (MAX_CACHE_SIZE == 0) {                     printf("缓存已满,无法添加! ");                     break;                 }                 printf("请输入要添加的缓存的键和值: ");                 scanf("%s%s", key, value);                 add_cache(key, value);                 MAX_CACHE_SIZE--;                 break;             case 2:                             printf("请输入要删除的缓存的键: ");             scanf("%s", key);             delete_cache(key);             MAX_CACHE_SIZE++;             break;         case 3:             printf("请输入要查找的缓存的键: ");             scanf("%s", key);             node_t* node = lookup(key);             if (node != NULL) {                 printf("%s: %s ", node->key, node->value);             } else {                 printf("缓存不存在! ");             }             break;         case 4:             print_cache();             break;         case 5:             return 0;         default:             printf("无效的选择! ");     } }
  在程序中,我们还设置了一个 MAX_CACHE_SIZE 的常量来限制缓存的数量。每当添加缓存时,我们将 MAX_CACHE_SIZE 减 1;每当删除缓存时,我们将 MAX_CACHE_SIZE 加 1。如果 MAX_CACHE_SIZE 的值为 0,则无法添加缓存。
  该程序的主函数中使用一个无限循环来持续接收用户的输入,直到用户选择退出程序。在每次循环中,程序会提示用户选择要执行的操作,并根据用户的选择执行相应的操作。如果用户选择无效的操作,则程序会输出提示信息。
  该缓存系统虽然简单,但足以演示基于内存的缓存系统的实现原理。在实际应用中,需要考虑更多的因素,例如缓存的过期时间、缓存的淘汰策略等。

亚洲小姐冠军陈炜晒出婚纱照,白色抹胸婚纱凸现高贵大方头条创作挑战赛前亚洲小姐冠军陈炜与男友陈国强将于9月26号在半岛酒店举行婚礼。陈炜和陈国强的结婚相邀来著名婚纱摄影师操刀。这辑婚照于今年1月拍摄,当日天气寒冷,室外场地又大风,炜哥全国射箭锦标赛决出男女个人与混合团体冠军新华社南京9月22日电(记者王恒志)2022年全国射箭锦标赛(室外)22日在江苏省方山体育训练基地决出男女个人和混合团体金牌,山东名将冯浩险胜北京小将孙铭浩获得男子个人冠军,江苏选世锦赛5项冠军今天出炉!国羽冲击3冠,男单全军覆没,男双没报名北京时间8月28日,羽毛球世锦赛正在进行。目前,五个单项决赛对阵已经全部出炉。国羽方面,三项晋级,冲击三项冠军。今天,世锦赛五个冠军将产生,遗憾的是,国羽男单三人报名参赛,遭遇全军张常宁太任性!不怕被封杀拒绝蔡斌好意,进出女排竟是自己说了算张常宁应该以集体为重不该太任性!近段时间以来因为戴口罩比赛,中国女排的热度火出排球圈引起舆论热议,不过随后中国排协也是在社交平台发表声明致歉,回应是因为队内有人感染,为了女排姑娘身俄媒纽约出现面向俄外交官的奇怪信息,署名是FBI环球网报道纽约出现面向俄外交官的奇怪信息,据俄Tsargrad电视台22日报道,俄外交部发言人扎哈罗娃日前注意到,在正举行联合国大会的纽约,俄罗斯常驻联合国代表团所在地附近的一根柱掰直手腕,杜绝键盘手,XBowsLite人体工学机械键盘上手为什么要用工学键盘人体工学键盘最大的好处在于能够减轻对手腕的伤害,可以有效预防腕管综合征。因为传统键盘不能让我们的手腕和手指得到自然的伸展,时间久了,手部的发力点就会明显感到酸痛,来看看我们的大幂幂,真的名副其实最近两天,杨幂和维密合作的宣传片曝光,让人们都大呼真的选对了人,杨幂的性感好身材在广告中展现的淋漓尽致。也将维密的品牌衬托的时尚潮流,真可谓是双赢的合作。幂维密内衣大片,暴露了什么每天一篇手机里的云(二十八)今天没什么特色和主题配置再高的电脑,使用时不注意这2点,仍会越用越卡现如今,电脑已经成为人们工作生活中最不能缺少的设备之一了。不同使用人群对电脑配置的需求也不尽相同,比如有的人用来打游戏或者做一些专业的图像模型处理工作,这就对电脑配置及性能要求非常ULEDX年度旗舰海信电视E8H65英寸图赏本月份,海信带来了全新的电视新品E8H系列,这是海信电视ULEDX年度旗舰产品,其搭载了MiniLED屏幕,拥有500分区,具备像素级精准控光,以及1600nit的峰值亮度,这也是双11就要来了!电视选购指南马上就要双11了!这可是选购家电的最好时机,错过就要再等一年了!今天我们就来看看每一个家客厅中必不可少的一样物件!没猜错!就是电视机!!在选购前,让我看看,选电视最重要的点,首先要
青岛看海,景点最美最多的线路在这里头条创作挑战赛五四广场和栈桥哪个是青岛的地标,它们之间有多远的距离,都有哪些景点,带着这些疑问,昨天沿着海岸线我走出了平生最多的步数25425步,用时七个半小时!每次回来只要有时间30张图,看北京警察的中秋节又逢一年月圆满最是人间好时节在相聚的夜晚有一群可爱的人坚守如故守望灯火,守护团圆在商圈在街巷在检查站皎洁的月光伴着温暖的红蓝光芒他们深入辖区的每一个角落开展安全检查隐患排查守护团圆很多长沙人都不知道的山峰,曾与岳麓山齐名,位于市区内岳麓山与橘子洲几乎成为长沙的地标,特别是岳麓山,拥有着浓厚的历史人文底蕴,携岳麓书院之势,真正向游客诠释了山不在高有仙则灵的真理,其实在长沙,还有一座山峰,在古代和抗日战争时期,都徽杭古道徒步体验,超全超详细攻略徒步线路安徽省绩溪县江南村浙江省杭州市浙川村日期2022年9月8日天气阴里程全程17公里,最高海拔1049米,累计爬坡773米,历时7小时46分。途经站点和景点江南第壹关西寺飞瀑施这是哪里?太美了湖北日报客户端讯(利川频道通讯员李传书杨翠)当你来到这里的时候,你会发现自己脚踏五彩云雾,眼观入诗入画的绿水青山。云雾缭绕着山川河流梯田民居,缥缥缈缈,你会觉得好像身在仙境。是的,7岁小女孩暗藏神力?32吨巨石轻松推动前言2014年的一天,在安徽郎溪姚村乡境内的一个石佛山景区,传出了一个令人震惊的消息一个刚上小学的7岁小女孩,据说凭借着一己之力,竟然将32吨重的巨石推动了!在场的人见到这一幕,无徽县不在安徽,在甘肃陇南,有陇上小江南之称,这里是富饶之地徽县,乍一听这个地名以为是在安徽省,其实徽县与安徽无关。徽县在甘肃省陇南市东北部,因这里的徽山脚下有徽山驿而得名。甘肃省徽县县城徽县地图甘肃省徽县地处秦岭山脉的西延地带,与陕西省挨那个立帖为证要去打扫东安湖公园的朋友,官方回复你了昨晚今晨网络上最热的话题之一莫过于有网友称,如果龙泉驿今晚(13日)12点能解封,我把东安湖公园扫一遍,成都龙泉驿公安幽默回复这可是你说的。今天(14日)下午1时许,东安湖公园对此远离热浪!躲在山间的这几家长沙民宿,太适合避暑了自从到了夏天,才发现哪凉快哪待着去真不是一句骂人的话,而是最真挚的关怀。这个暑假,长沙炙烤般的温度着实让人难以承受,想要避暑?晨视频为你整理了这一期民宿避暑特辑,一起远离热浪,去民超好吃的长汀泡猪腰说到猪腰,就是猪肾。按中医说法呢,吃啥补啥。那泡猪腰,看来是补肾的上品啦。为何叫泡猪腰?因为关键点在一个泡字上。第一泡,将切好的猪腰放入水中洗净。然后加酒与盐泡个十多分钟。此为第一北海这个漂亮的湖景公园,如果在市中心,人气应该会爆表北海市休闲公园其实不少,中山公园长青公园海滨公园西藏路带状公园市花公园西南大道带状公园等。但是众多公园中却缺乏一个比较大的湖景公园,长青公园那个湖还是偏小了。而一个公园,缺乏点水中