发布时间:2026/8/11 3:45:59
链表 -- 环链表 环链表的创建4 node_t *clinklist_create(void) 5 { 6 node_t*pheadmalloc(sizeof(node_t)); 7 if(pheadNULL) 8 { 9 printf(malloc fail); 10 return NULL; 11 } 12 phead-nextphead; 13 return phead; 14 }与普通链表区分这里头节点指向自己环链表的头插入16 void clinlist_insert_head(node_t*phead,data_t d) 17 { 18 node_t*p_newmalloc(sizeof(node_t)); 19 if(pheadNULL) 20 { 21 printf(malloc fail); 22 return ; 23 } 24 if(phead-nextphead) //只有头节点的情况 25 { 26 phead-nextp_new; 27 p_new-nextp_new; 28 p_new-datad; 29 return; 30 } 31 node_t*p_tailphead-next; 32 while(p_tail-next!phead-next) //其实也可以处理空链表的情况下面是通用逻辑 33 p_tailp_tail-next; 34 p_tail-nextp_new; 35 p_new-nextphead-next; 36 phead-nextp_new; 37 p_new-datad; 38 return; 39 }这里采用的是头节点没有有效数据头节点不参与环的插入方法若头节点插入环实现起来会相对简单打印环链表41 void clinklist_printf(node_t*phead) 42 { 43 if(pheadNULL) 44 return; 45 node_t*pphead-next; 46 if(pphead) 47 return; 48 if(p-nextp) 49 { 50 printf(%d ,p-data); //此处特殊处理除了头节点只有一个节点的情况下面的通用逻辑也是可以处理的 51 return; 52 } 53 printf(%d ,p-data); 54 pp-next; 55 while(p!phead-next) 56 { 57 printf(%d ,p-data); 58 pp-next; 59 } 60 return; 61 }以头节点指向的首节点作为截止标志来作为结束条件环链表的查找63 node_t* clinklist_find_key(node_t*phead,data_t key) 64 { 65 node_t*pphead-next; 66 if(pphead) 67 return NULL; 68 if(p-datakey) 69 return p; 70 pp-next; 71 while(p-data!key p!phead-next) 72 pp-next; 73 if(p-datakey) 74 return p; 75 return NULL; 76 }环链表的尾删除78 void clinklist_del_tail(node_t*phead) //删除的是头结点指向的首节点的前一个节点 79 { 80 if(pheadNULL || phead-nextphead) 81 return; 82 node_t*pphead-next; 83 while(p-next-next!phead-next) 84 pp-next; 85 node_t*p_delp-next; 86 if(phead-nextp_del) //避免单节点情况下头结点的悬空指针 87 phead-nextphead; 88 p-nextphead-next; 89 free(p_del); 90 }环链表的头删除92 void clinklist_del_head(node_t*phead) 93 { 94 if(pheadNULL || phead-nextphead) 95 return; 96 node_t*p_tailphead-next; 97 while(p_tail-next ! phead-next) 98 { 99 p_tailp_tail-next; 100 } 101 node_t*p_delphead-next; 102 phead-nextp_del-next; 103 p_tail-nextp_del-next; 104 free(p_del); 105 }环链表的销毁107 void clinklist_destroy(node_t**phead) 108 { 109 if(pheadNULL || *pheadNULL) 110 return; 111 if((*phead)-next*phead) 112 { 113 free(*phead); 114 *pheadNULL; 115 return; 116 } 117 if((*phead)-next(*phead)-next-next) 118 { 119 free((*phead)-next); 120 free(*phead); 121 *pheadNULL; 122 return; 123 } 124 node_t*p(*phead)-next-next; 125 node_t*p_del(*phead)-next-next; 126 while(p!(*phead)-next) 127 { 128 pp_del-next; 129 free(p_del); 130 p_delp; 131 } 132 free(p); 133 free(*phead); 134 *pheadNULL; 135 }

相关新闻

2026/8/11 3:45:58

CTF杂项解题实战:从文件分析到隐写提取的完整思路

1. 项目概述:一次典型的CTF解题复盘最近在整理过去的比赛记录,翻到了去年参加的一场印象比较深刻的比赛——2022年DASCTF四月赛与FATE联合举办的“防疫挑战赛”。这场比赛的题目紧扣时事,将网络安全知识与“防疫”场景做了不少有趣的结合&…

2026/8/11 3:45:58

Humanizer:消除AI文本机器腔调的关键技术

1. 为什么我们需要Humanizer这个Skill?在AI技术爆发的2024年,一个令人困扰的现象越来越普遍:AI生成内容(AIGC)的"机器腔调"问题。我最近在团队内部做了一次小测试,让10位同事分辨人工撰写和AI生成…

2026/8/11 3:40:58

VMware虚拟机从入门到精通:安装配置与高效使用全攻略

你肯定遇到过这样的情况:想学一门新技术,比如Linux运维,或者想测试一个软件,但不敢直接在自己的主力机上折腾,怕把系统搞崩了。又或者,你需要一个纯净的、可随时重置的Windows环境来运行某些特定程序。这时…

2026/8/11 5:01:02

西施浣纱袜业:世界袜都年产超250亿双,为什么还需要一个……

浙江诸暨大唐街道,年产袜子超250亿双。这个数字意味着什么?按全球82亿人口算,相当于每年给地球上的每个人做三双袜子。产值规模超700亿元,产量占全国七成、全球三分之一。从产量和市场份额来看,这是名副其实的“世界袜…

2026/8/11 5:01:02

警惕技术债务清理中的虚假完成率:从状态变更到真实问题解决

在实际技术项目中,我们经常需要处理数据统计、状态转换和逻辑判断。一个典型的场景是:系统显示某项任务(例如数据处理、债务清理或资源回收)的“完成率”已经达到一个很高的百分比,比如94%。从表面指标看,这…

2026/8/11 5:01:02

Keras与vLLM集成前瞻:简化LLM部署,提升推理性能

今天我们来关注一个对深度学习开发者来说非常重要的技术动向:Keras社区会议正式召开,并将核心议题聚焦于vLLM的集成。这不仅仅是两个流行开源项目的简单结合,它预示着未来在本地高效部署和推理大型语言模型(LLM)时&…

2026/8/11 5:01:02

SpringBoot电影推荐系统:协同过滤与内容过滤实战

1. 项目概述:SpringBoot电影推荐系统设计与实现去年指导计算机专业毕业设计时,发现电影推荐系统始终是学生首选课题之一。这个基于SpringBoot的推荐系统源码(编号23556)之所以备受青睐,关键在于它完整覆盖了企业级应用…

2026/8/11 4:56:02

校园食堂微信点餐系统:SSM+VUE技术实现与优化

1. 项目概述:校园食堂微信点餐系统设计与实现去年帮学弟调试毕业设计时,发现校园食堂就餐高峰期的排队问题比想象中严重。传统窗口打饭模式导致中午12点的食堂永远人满为患,而下午1点半后又面临食材浪费。这个基于SSMVUE的微信点餐小程序&…

2026/8/11 3:03:40

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 5:09:58

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/11 0:00:39

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:39

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/10 11:20:30

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/11 3:05:11

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…