平湖公司做网站南城网站建设公司如何

web/2025/10/3 22:45:13/文章来源:
平湖公司做网站,南城网站建设公司如何,黑客软件,做饼干的网站目录 一、循环单链表 1、循环单链表的定义#xff1a; 2、循环单链表的优缺点#xff1a; 二、循环单链表的基本操作算法#xff08;C语言#xff09; 1、宏定义 2、创建结构体 3、循环单链表的初始化 4、循环单链表的插入 5、求单链表长度 6、循环单链表的清空…目录 一、循环单链表 1、循环单链表的定义 2、循环单链表的优缺点 二、循环单链表的基本操作算法C语言   1、宏定义 2、创建结构体 3、循环单链表的初始化  4、循环单链表的插入 5、求单链表长度 6、循环单链表的清空 7、循环单链表的销毁 8、循环单链表的取值 9、循环单链表的查找 10、循环单链表的删除 11、头插法创建循环链表 12、尾插法创建循环链表 13、输出链表元素 三、循环单链表的基本操作完整代码C语言 四、运行结果 一、循环单链表 1、循环单链表的定义 循环单链表是一种特殊类型的单链表其特点是链表的最后一个结点的指针域指向整个链表的第一个结点从而形成一个环状结构。 这种数据结构可以用来存储有序的数据集合其插入和删除操作可以在平均时间复杂度O(1)内完成这是其相比单链表的一大优势。循环单链表的操作一般更复杂因为需要维护环状的结构并保证对链表的操作满足时间复杂度的要求。 2、循环单链表的优缺点 优点 循环单链表可以高效地执行插入和删除操作因为不需要像单链表那样从头或尾部开始遍历整个链表。循环单链表的空间利用率较高因为最后一个结点的指针域指向整个链表的第一个结点从而避免了浪费空间存储空指针。循环单链表适合用于处理有序的数据集合可以快速地执行查找、插入和删除操作。 缺点 循环单链表的操作相对复杂因为需要维护环状的结构并保证对链表的操作满足时间复杂度的要求。在某些情况下循环单链表可能比单链表更难以理解和实现。 二、循环单链表的基本操作算法C语言   1、宏定义 #define OK 1 #define ERROR 0typedef char ElemType; typedef int Status; 2、创建结构体 typedef struct LNode {ElemType data;struct LNode *next; } LNode, *LinkList; 3、循环单链表的初始化  //循环链表初始化 Status InitList(LinkList head) {head new LNode;//head-nextNULL;head-next head;return OK; }4、循环单链表的插入 //插入 Status ListInsert(LinkList head, int i, ElemType e) {LinkList p head;int j 0;while (p (j i - 1)) {p p-next;j;}if (!p || j i - 1) {return ERROR;}LNode *s new LNode;s-data e;s-next p-next;p-next s;return OK; } 5、求单链表长度 //求单链表长度 Status GetLinkListLength(LinkList head) {LinkList p head-next;int length 0;while (p ! head) { //p!NULL //单链表不为空表时length;p p-next;}return length; }6、循环单链表的清空 //清空 Status ClearLinkList(LinkList head) {LinkList p head-next;LinkList q;while (p ! head) { //p ! L p!NULLq p;p p-next;delete q;}head-next head; //链表为空return OK; } 7、循环单链表的销毁 //销毁 Status DestoryLinkList(LinkList head) {LinkList p head-next;LinkList q;while (p ! head) { //p ! L p!NULLq p;p p-next;delete q;}head-next NULL;// printf(\n销毁成功\n);return OK; } 8、循环单链表的取值 //取值 Status GetLinkList(LinkList head, int i, ElemType e) {LinkList p head-next;int j 1;while (p ! head j i) { //p ! Lp p-next;j;}if (p head) {//pLreturn ERROR;}e p-data;return OK; } 9、循环单链表的查找 //查找 int LocateLinkListElem(LinkList head, ElemType e) {LinkList p head-next;int j 1;while (p ! head (p-data ! e)) {//p ! L p!NULLp p-next;j;}if (p head) { //pL !ppNULLreturn 0;}return j; } 10、循环单链表的删除 //删除 Status ListDelete(LinkList head, int i, ElemType e) {LinkList p head;int j 0;while (p-next ! head j i - 1) { //p ! Lp p-next;j;}if (p-next head) { //pLreturn ERROR;}LinkList q p-next;e q-data;p-next q-next;delete q;return OK; } 11、头插法创建循环链表 //头插法创建循环链表 void CreateLinkList_H(LinkList head, int n) {InitList(head);for (int i 0; i n; i) {LNode *p new LNode;//scanf(%c,p-data);p-data getche();//cin p-data;p-next head-next;head-next p;} } 12、尾插法创建循环链表 //尾插法创建循环链表 void CreateLinkList_R(LinkList head, int n) {InitList(head);LinkList r head;for (int i 0; i n; i) {LNode *p new LNode;//scanf(%c,p-data);p-data getche();//cin p-data;//p-nextNULL p-nexthead//p-next r-next;r-next p;r p;}r-next head; //尾结点next域指向头结点 } 13、输出链表元素 //输出链表元素 void printLinkList(LinkList head) {LinkList p head-next;while (p ! head) { //p ! Lprintf(%c, p-data);p p-next;}printf(\n); } 三、循环单链表的基本操作完整代码C语言 #include stdio.h #include conio.h//getche() #include cstdlib//free()#define OK 1 #define ERROR 0typedef char ElemType; typedef int Status;typedef struct LNode {ElemType data;struct LNode *next; } LNode, *LinkList;//循环链表初始化 Status InitList(LinkList head) {head new LNode;//head-nextNULL;head-next head;return OK; }//功能菜单 Status choice() {printf(\n);printf( 循环链表操作功能菜单 \n);printf(1、插入元素 2、查询表长 3、按位查找\n);printf(4、按值查找 5、删除元素 6、销毁链表\n);printf(7、清空链表 8、批量插入 9、链表元素\n);printf(10、头插法创建单链表11、尾插法创建单链表\n);printf(\n);return 1; }//插入 Status ListInsert(LinkList head, int i, ElemType e) {LinkList p head;int j 0;while (p (j i - 1)) {p p-next;j;}if (!p || j i - 1) {return ERROR;}LNode *s new LNode;s-data e;s-next p-next;p-next s;return OK; }//求单链表长度 Status GetLinkListLength(LinkList head) {LinkList p head-next;int length 0;while (p ! head) { //p!NULL //单链表不为空表时length;p p-next;}return length; }//销毁 Status DestoryLinkList(LinkList head) {LinkList p head-next;LinkList q;while (p ! head) { //p ! L p!NULLq p;p p-next;delete q;}head-next NULL;// printf(\n销毁成功\n);return OK; }//清空 Status ClearLinkList(LinkList head) {LinkList p head-next;LinkList q;while (p ! head) { //p ! L p!NULLq p;p p-next;delete q;}head-next head; //链表为空return OK; }//取值 Status GetLinkList(LinkList head, int i, ElemType e) {LinkList p head-next;int j 1;while (p ! head j i) { //p ! Lp p-next;j;}if (p head) {//pLreturn ERROR;}e p-data;return OK; }//查找 int LocateLinkListElem(LinkList head, ElemType e) {LinkList p head-next;int j 1;while (p ! head (p-data ! e)) {//p ! L p!NULLp p-next;j;}if (p head) { //pL !ppNULLreturn 0;}return j; }//删除 Status ListDelete(LinkList head, int i, ElemType e) {LinkList p head;int j 0;while (p-next ! head j i - 1) { //p ! Lp p-next;j;}if (p-next head) { //pLreturn ERROR;}LinkList q p-next;e q-data;p-next q-next;delete q;return OK; }//头插法创建循环链表 void CreateLinkList_H(LinkList head, int n) {InitList(head);for (int i 0; i n; i) {LNode *p new LNode;//scanf(%c,p-data);p-data getche();//cin p-data;p-next head-next;head-next p;} }//尾插法创建循环链表 void CreateLinkList_R(LinkList head, int n) {InitList(head);LinkList r head;for (int i 0; i n; i) {LNode *p new LNode;//scanf(%c,p-data);p-data getche();//cin p-data;//p-nextNULL p-nexthead//p-next r-next;r-next p;r p;}r-next head; //尾结点next域指向头结点 }//输出链表元素 void printLinkList(LinkList head) {LinkList p head-next;while (p ! head) { //p ! Lprintf(%c, p-data);p p-next;}printf(\n); }int main() {LinkList list;//初始化printf(单链表正在初始化....\n);int InitStatus InitList(list);if (InitStatus OK) {printf(单链表初始化成功\n);} else {printf(单链表初始化失败\n);}choice(); //调用功能菜单函数int temp 1; //通过改变temp的值来跳出while循环while (temp) {int flag;printf(请输入所需的功能编号\n);scanf(%d, flag);switch (flag) {//通过开关进行功能选择case 1: {//插入元素int insertIndex;ElemType inserElem;printf(请输入插入元素位置及插入元素(请在英文状态下输入例如:1,a): \n);scanf(%d,%c, insertIndex, inserElem);Status InsertS ListInsert(list, insertIndex, inserElem);if (InsertS OK) {printf(向循环链表%d个位置,插入元素为%c成功\n\n, insertIndex, inserElem);} else {printf(向循环链表插入元素失败\n\n);}}break;case 2: {//求单链表的长度int length GetLinkListLength(list);printf(循环链表的长度为:%d。 \n\n, length);}break;case 3: {//取值Status GetIndex;printf(请输入需要查询的元素的位置\n);scanf(%d, GetIndex);ElemType GetElem;int GetStatus GetLinkList(list, GetIndex, GetElem);if (GetStatus OK) {printf(从循环链表中获取第%d位置元素成功所获取到的元素为%c。\n\n, GetIndex, GetElem);} else {printf(从循环链表中获取第%d位置元素失败\n\n, GetIndex);}}break;case 4: {//查找ElemType LocateElem;printf(请输入想要查找元素\n);getchar(); //用于接收回车scanf(%c, LocateElem);Status LocateIndex LocateLinkListElem(list, LocateElem);if (LocateIndex 0) {printf(从循环链表中查找元素%c成功它在循环链表中的位置为第%d个\n\n, LocateElem, LocateIndex);} else {printf(从循环链表中查找元素%c失败\n\n, LocateElem);}}break;case 5: {//删除Status DeleteIndex;printf(请输入想要删除元素的位置\n);scanf(%d, DeleteIndex);ElemType DeleteElem;ElemType DeleteStatus ListDelete(list, DeleteIndex, DeleteElem);if (DeleteStatus OK) {printf(删除循环链表第%d个位置的元素成功删除的元素为%c。\n\n, DeleteIndex, DeleteElem);} else {printf(删除循环链表第%d个位置的元素失败\n\n, DeleteIndex);}}break;case 6: {//销毁Status DestoryStatus DestoryLinkList(list);if (DestoryStatus OK) {printf(循环链表销毁成功\n\n);} else {printf(循环链表销毁失败\n\n);}}break;case 7: {//清空Status ClearStatus ClearLinkList(list);if (ClearStatus OK) {printf(循环链表清空成功\n\n);} else {printf(循环链表清空失败\n\n);}}break;case 8: {//批量插入int on;printf(请输入想要插入的元素个数\n);scanf(%d, on);ElemType array[on];for (int i 1; i on; i) {getchar();printf(向循环链表第%d个位置插入元素为:, (i));scanf(%c, array[i]);}for (int i 1; i on; i) {Status InsertStatus ListInsert(list, i, array[i]);if (InsertStatus OK) {printf(向循环链表第%d个位置插入元素%c成功\n, i, array[i]);} else {printf(向循环链表第%d个位置插入元素%c失败\n, i, array[i]);}}}break;case 9: {//输出链表元素//temp0;//return 0;printf(现在链表的元素为);printLinkList(list);}break;case 10: {//头插法创建单链表//getchar();LinkList L;printf(请输入五个字符\n);CreateLinkList_H(L, 5);int length GetLinkListLength(L);printf(\n循环链表的长度为:%d。 \n, length);printf(循环链表的元素为:);printLinkList(L);printf(\n);}break;case 11: {//尾插法创建单链表LinkList L;printf(请输入五个字符\n);CreateLinkList_R(L, 5);int length GetLinkListLength(L);printf(\n循环链表的长度为:%d。 \n, length);printf(循环链表的元素为:);printLinkList(L);printf(\n);}break;default:printf(输入错误无此功能请检查输入:\n\n);}}}四、运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瓜果类网站建设方案网站建设有哪种方式

关于uniapp组件的坑 我有一个组件写的没什么问题,但是报下面这个错误 is not found in path “components/xxx/xxxx” (using by “components/yyy/yyy”) 最后经过排除发现命名需要驼峰命名法 我原本组件命名: 文件夹名 test_tttt 文件名 test_tttt.vue 不行 最后改成文件…

线上海报设计网站环保行业网站怎么做

1 就跟我房东说:现在打工人压力真大一样▼2 原来,连打工人都不配了吗?(素材来源网络,侵删)▼3 原来这才是家大叶大▼4 给女朋友拍照时的你!(via.刘一杭三三 )▼5 当法…

html5网站建设加盟公司和企业的区别

在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前…

企业微营销网站国外手机设计网站

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

青浦教育平台网站建设wordpress函数the_posts

项目多人协作的困扰 相信大家多多少少都遇到过,当主线分支的代码,合入到自己的分支的时候,如果这时候,主线中有一些依赖的更新或者添加或者删除,如果合入之后,没有及时的install的话,项目启动的…

dede网站seowordpress清理修订

Kimi 是当前国内相当火爆的 AI 产品,输出结果和使用体验都非常不错。 Kimi 开放了 API 接口,新用户注册后会免费赠送 15 元额度。 Kimi API 的网址: platform.moonshot.cn/console 这是光明正大的白嫖方式,一定不要错过哦。 如…

合肥网站建设是什么网站关键词代码怎么做

Redis 主从复制 redis 主从复制配置 redis 主从复制启动 redis 主从复制断开 redis 主从复制主从复制构特点主从复制的拓扑结构一主一从⼀主多从树状主从 主从复制原理数据同步psync 运行流程全量复制流程部分复制流程实时复制 关于从节点何时晋升成主节点总结 redis 主从复制 …

高端网站建设如何收费红酒商城网站建设

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析、位置分配分析和高级网络的管理与创建等。 网络…

自创网站怎么赚钱常见的网页布局结构有哪些

题干&#xff1a; 给出长度为n的序列a, 求有多少对数对 (i, j) (1 < i < j < n) 满足 ai aj 为完全平方数。 输入描述: 第一行一个整数 n (1 < n < 105) 第二行 n 个整数 ai (1 < ai < 105) 输出描述: 输出一个整数&#xff0c;表示满足上述条件的数…

注册网站商城需要什么条件4399网页版入口

Akka演员承诺并发。 有什么更好的模拟方式&#xff0c;看看使用商品硬件和软件处理1000万条消息需要花费多少时间&#xff0c;而无需进行任何低级调整。我用Java编写了整个1000万条消息的处理过程&#xff0c;整个结果令我惊讶。 当我在具有Intel i5 – 4核&#xff0c;4 Gb RA…

aspcms企业网站模板求购买链接

最近需要做一些向量检索&#xff0c;试试ES 一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 本地单机环境&#xff0c;无集群&#xff0c;也不基于Docker BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应…

网站策划设计海口seo网络推广

提供api&#xff0c;POST方式&#xff0c;根据传递过来的微博uid/appkey&#xff0c;判断该用户的ID是否在自己的数据库中。如果有&#xff0c;直接登录返回用户登录api的json。如果没有&#xff0c;就将该用户的IDtoken请求微博用户信息api&#xff1a;http://open.weibo.com/…

北大青鸟教网站开发吗雅安建设局网站

来源&#xff1a; 科技日报摘要&#xff1a;近日&#xff0c;十三届全国政协第一次双周协商座谈会在京召开。会议聚焦的话题是人工智能的发展与对策。夯实基础&#xff0c;提升原始创新能力中科院计算所智能处理器中心主任陈云霁做的就是智能芯片&#xff0c;作为智能芯片公司寒…

网站登录记录怎么删除做网站vpn多大内存

Visual C# 2010 编译器选项 - 输出文件 -/out:<文件> 指定输出文件名(默认值: 包含主类的文件或第一个文件的基名称)/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)/target:winexe …

青岛网站建设公司 中小企业补贴写字楼装修公司

参考资料 OpenWeatherMap提供了一个/forecast接口&#xff0c;用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口&#xff0c;并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数&#xff1a; URL: http://api.openwe…

做网站挣钱吗现在口碑营销有哪些

之前写过一篇关于springboot 与 mybatis整合的博文&#xff0c;使用了一段时间spring-data-jpa&#xff0c;发现那种方式真的是太爽了&#xff0c;mybatis的xml的映射配置总觉得有点麻烦。接口定义和映射离散在不同的文件中&#xff0c;阅读起来不是很方便。于是&#xff0c;准…

网站建设黄页免费观看拓什么设计网站

摘要&#xff1a; 在人工智能技术的不断进步中&#xff0c;AnimateAnyone项目以其创新性和易用性脱颖而出&#xff0c;成为GitHub上备受瞩目的AI项目之一。由阿里巴巴智能计算研究院开发的这一技术&#xff0c;允许用户通过提供一张静态照片&#xff0c;快速生成动态角色。本文…

泰州网站建设服务好兄弟们拿走不谢

原型与原型链 原型 在js中&#xff0c;每个对象都有一个原型&#xff08;prototype&#xff09;。原型是一个对象&#xff0c;其他对象可以通过原型来共享属性和方法。当我们创建一个对象时&#xff0c;它会自动关联到一个原型对象。 例如&#xff1a;function Person(name, a…

微信开放平台 网站开发临沂网站建设步骤

orm框架选型问题在过去的几年中&#xff0c;像Hibernate这样的对象关系映射工具已经帮助开发人员在处理关系数据库方面获得了巨大的生产力增长。 ORM使开发人员可以专注于应用程序逻辑&#xff0c;并避免为诸如插入或查询之类的简单任务编写大量样板SQL。 但是&#xff0c;充分…

网站建设大小pc网站怎么适配移动端

前段时间换了Tomcat6.0。一直都没配置mysql数据库数据源。今天想用时&#xff0c;既然按以前版本的方式配不上。。汗。。。后来上网查找才找到解决方案。写下这段话&#xff0c;以免忘记。。具体做法如下&#xff1a; 在$CATALINA_HOME/conf/server.xml文件中的<Host><…