一个循环单链表的建立赋值和遍历(狼找兔子问题)

【头歌】循环单链表的基本操作 an),LB=(b1,b2,…算法思想: 先找到两个链表的尾,并分别由指针p、q指向它们,然后将第一个链表的尾结点与第二个表的第一个结点链接起来,并修改第二个表的尾结点,使它的链域指向第一个表的头结点。将尾结点的next域用一个特殊值NULL(空指针,不指向任何结点,只起标志作用)表示,这样的单链表为非循环单链表,通常所说的单链表都是指这种类型的单链表。=L作为循环条件,当p==L时循环结束,此时p回过来指向头结点,所以p应该初始化指向第一个数据结点而不是头结点,否则循环内的语句不会执行。 阅读详情

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW 0
#define INIT 0
#define VISIT 1
//------------------------------------------------------

typedef struct CLNode
{
 int data;
 struct CLNode *next;
}CLNode, *CLinkList;

//------------------------------------------------------

int InitList_CL(CLinkList &L)
{
 L = (CLinkList) malloc(sizeof(CLNode));
 if(!L)
  exit(OVERFLOW);
 L->data=INIT;
 L->next = L;
 return OK;
}

//------------------------------------------------------

int CreateList_CL(CLinkList &L, int n)
{
 CLinkList p, q;
 int i;

 //p = (CLinkList) malloc(sizeof(CLNode));
 q = L;
 for(i=0;i<n-1;i++)
 {
  p = (CLinkList) malloc(sizeof(CLNode));
  if(!p) return ERROR;
  q->next=p;
  p->next=L;
  p->data=INIT;
  q=p;
 }

 return OK;
}

//------------------------------------------------------

int GetElem_CL(CLinkList L, int i)
{
 CLinkList p;
 int j=1;
 p = L;
 while(j<i)
 {
 p = p->next;
 ++j;
 }
 p->data = VISIT;
 return OK;
}

//------------------------------------------------------

int TravseList_CL(CLinkList L)
{
 CLinkList p;
 p = L;

 do 
 {
 printf("%d",p->data);
 p = p->next;
 } while(p!=L);
 return OK;
}

//------------------------------------------------------

void main ()
{
 CLinkList L;
 int i,n,t;

 InitList_CL(L);
 CreateList_CL(L,10);
 printf("wolf seach:/n");
 scanf("%d",&n);

 for(i=0, t=1;t<n+1;t++)
  {
  i=i+t;
  GetElem_CL(L, i);
  }
 printf("Hole/n");
 TravseList_CL(L);
}

SAP S/4HANA BP主数据-CVI模型 SAP BP主数据介绍 ECC系统中的客户、供应商主数据的限制: •一个客户或供应商仅能有一个地址 •客户和供应商没有关联关系(同一个实体公司) •如果一家公司既是供应商也是客户需建立两个主数据(数据冗余) •属性无时间相关性 S4系统中BP优点: •一个BP可以扮演多个角色(个人,客户,供应商)且角色之间数据共享 •时间相关的属性 •统一的数据架构,无数据冗余 •CVI模型可以确保BP和客户/供应商数据同步 SAP BP主数据配置 •配置BP角色/角色类别 •配置BP角. 阅读详情

相关推荐

Grey Hack v0.7.3618 保姆级教程:手把手教你用metaxploit.so写一个自动提权脚本

本文详细介绍了如何在Grey Hack v0.7.3618中使用metaxploit.so库编写自动化提权脚本。从环境准备到核心功能解析,再到漏洞利用链构建和权限提升的智能处理,手把手教你掌握游戏中的高级黑客技巧。通过多库联合利用和错误处理优化,提升脚本的效率和成功率。

weixin_42537919的博客 394

环形链表(循环赋值/双指针)

首先,题意很明确,给你一个链表头结点,判断这个链表是不是环链表 其实在题目中,我们便可以得到我们的第一思路了,“如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环”,我们根据这句话来写 我们直接遍历这个链表即可,且每经过一个结点我们就对其赋值(注意要赋本题数据范围以外的数据,所以我们赋100001),那么如果是环链表,我们就必然还会遍历到100001这个数字,根据能否找到这个数字来判断是不是环链表即可!!! /** * Definition for singly-...

默默无闻但不碌碌无为 1993

OV5640调试大坑,关于binning、RES分辨率与EV曝光

OV5640在使用binning模式时,必须考虑使用场景,分辨率下降叠加动态范围压缩,会使目标对象细节在高光环境下大量丢失,2x2的binning模式,分辨率会远低于感光面积的1/4。

chongyun_的专栏 1824

java-使用for循环给list赋值

最近在使用for循环给list赋值,最后发现list中的所有对象的值都变成了最后一个对象的值了,查资料才知道list在调用add()方法时,每次都只是保留的一个对象的引用,如果在for循环外面new list的对象,最后list集合里面对象的值全都变成了最后一次对象的值。因此在for循环内new对象,每循环一次,就有会创建新的内存地址给对象,list每次添加的引用就不同了。 List&lt;L...

最初的模样 2万+

思科华三设备组网思科生成树PVST发BPDU导致全网闪断

一、故障现象 1.思科PVST BPDU报文导致全网闪断。 2.光衰低时不同品牌网络设备无法兼容导致接入交换机中断。 二、网络拓扑 图1 网络拓扑图 组网结构为H3C汇聚,接入交换机有思科,也有H3C,而且与汇聚直连的接入交换机下面串接了较多的交换机,或者hub。 三、排查思路 1.回忆一下最近做了什么事情,什么时候开始出的问题。 将网络汇聚交换机从思科换为H3C,H3C汇聚和思科接入对接出问题...

Silence_always的博客 7474

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 321

for循环中变量赋值与定义和执行顺序的问题

for循环中变量赋值与定义和执行顺序的问题

m0_63533811的博客 5614

达梦DM8整合Seata AT模式实战:手把手教你搞定分布式事务(含源码修改避坑)

本文详细介绍了达梦DM8数据库与Seata AT模式的深度整合实战,包括环境准备、架构设计、源码适配及分布式事务落地。通过独创性源码改造,解决了Seata官方对达梦数据库AT模式支持的限制,为国产数据库在微服务架构中的应用提供了可靠的事务保障。

weixin_30764771的博客 332

第1关:单循环链表的实现—链表的添加、遍历任务描述相关知识单循环链表添加操作遍历循环链表编程要求测试说明任务描述在操作单链表时,

在操作单链表时,我们有时希望从单链表中的任一结点出发都能遍历整个链表,但对于单链表来说,只有从头结点开始才能扫描表中的全部结点。因此我们需要改动链表,使其首尾相接,这样就能满足我们的需求。单循环链表的添加操作与普通的单链表操作类似,只需添加时注意处理尾结点,使其指向头结点。改为指向表头结点或开始结点,就得到单链形式的循环链表,称为单循环链表。由于有头结点,所以空表和非空表的处理方式是一样的。本关任务:完成带头结点的单循环链表的添加功能,遍历链表并输出。这里采用的是尾插法,即在链表的末尾添加结点。

qq_64001869的博客 3380

LightTools手动创建菲涅尔透镜的5个实用技巧(附详细步骤图)

本文详细介绍了在LightTools中手动创建菲涅尔透镜的5个核心技巧,包括理解旋转体与折线原理、高效构建多齿轮廓、编辑优化、坐标系定位以及属性设置与验证。通过分步图解和实用策略,帮助用户突破内置工具限制,实现对非标准齿形和复杂光学设计的完全掌控,提升建模精度与仿真效率。

onion的博客 774

香橙派rk3588的rknn多线程推理RTSP流服务性能优化与资源分配策略

本文深入探讨了香橙派RK3588平台上的RKNN多线程推理在RTSP流服务中的性能优化与资源分配策略。通过分析硬件架构、设计多线程推理流水线、实现NPU核心负载均衡及优化RGA内存管理,显著提升了RTSP视频流的处理帧率和降低了延迟,为边缘计算视频分析应用提供了实用的优化方案。

7up55的博客 655

C语言数据结构学习:单循环链表

C语言数据结构学习:单循环链表

L_Z_J_I的博客 431

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1319

数据结构与算法python版_数据结构与算法(Python版)

前言章数据结构与算法1.1程序1.2数据结构1.2.1数据结构的核心地位1.2.2数据结构的组成1.3算法1.3.1算法的5个属性1.3.2算法的3个层次1.4算法复杂度1.4.1空间复杂度1.4.2时间复杂度1.4.3提高算法效率的方法1.5算法表示方式1.5.1流程图前言章数据结构与算法1.1程序1.2数据结构1.2.1数据结构的核心地位1.2.2数据结构的组成1.3算法1.3.1算法的5个属...

weixin_39634579的博客 358

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

leetcode数据结构与算法5~7:链表双指针与二级指针

这篇文章摘要:本文介绍了链表和哈希映射的实用技巧,重点讲解了双指针和二级指针在链表操作中的优雅应用。通过三个LeetCode题目示例:(1) 使用快慢指针高效寻找链表中间节点;(2) 利用数组哈希表统计字符解决赎金信问题;(3) 采用二级指针技巧处理链表相加的进位问题,展示了指针技术在离散内存管理中的优势。文中特别强调了边界条件处理和代码简洁性的平衡,为处理链表问题提供了多种思路。

有时work,经常BUG,总是DeBug 658

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

头歌JAVA数据结构答案

头歌JAVA数据结构答案 一、Java数据结构-循环链表的设计与实现 第1关 单循环链表的实现—链表的添加、遍历 package step1; /** * Created by sykus on 2018/1/15. */ public class MyCircleLinkedList { private Node head;//头结点, 不存数据 private Node tail;//尾结点, 指向链表的最后一个节点 private int size; publi

嵌入一下?的博客 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

对链表循环赋值的时候保存的值总是最后一个

因为要从数据库读取数据,因为很多情况下数据都不止有一条,所以准备用一个List来存放数据,直接上代码: 开始我就是这样写的,但是执行的时候发现循环中验证值是正确的,但是最后得到的链表中的值却都是最后一个。 通过观察发现可能造成的原因是每次循环执行 FriendInfo f 语句的时候分配的内存空间一直是同一块儿,所以这个循环操作实际是在不停地对同一块儿内存空间赋值,所以在链表中存储的一直是同一块内存空间的地址。 改正措施: 第一种:将Friend Info f改为Friend Info *f=ne

chenaifeiwuya的博客 433

链表的实现(简单易懂) 王道考研书

带头结点和不带头节点的单链表操作是不同的。带头结点的next域初始化为NULL。

zllover_hua的博客 413

数据结构(六)——循环链表

数据结构(六)——循环链表 一、循序链表简介 1、循环链表的定义 循环链表的任意元素都有一个前驱和一个后继,所有数据元素在关系上构成逻辑上的环。循环链表是一种特殊的单链表,尾结点的指针指向首结点的地址。循环链表的逻辑关系图如下: 2、循环链表的设计实现 循环链表的设计实现要点:A、通过模板定义CircleList,继承自LinkedListB、定义连接链表首尾的内部函数C、实现首元素的插入和删除操...

weixin_34210740的博客 1692

java给链表赋值_java链表的各种操作

java里面没有指针的说法,所以初始化的时候,就是新建一个null节点就是一个空链表了。//C里面链表会有头指针,头指针指向头节点如果想向空链表插入第一个节点,直接head=newNode;注意的情况是如果想循环链表,一定新建一个节点把head考出来,然后遍历,不能直接用head遍历/*** Created by Administrator on 2017-10-27.*/public class...

weixin_31746993的博客 3603

单链表尾插法

#include #include #define OK 0 #define ERROR -1 #define MALLOC_ERROR -2 typedef int ElementType; typedef struct node { ElementType data; // 结点的数据 struct node *next

qq_36691432的博客 645

单向链表的添加及遍历

单向链表的添加及遍历 一、在链表尾添加新节点 1.创建:头节点head(不存放任何数据) 2.遍历:利用临时变量temp遍历整个单链表 在这里插入代码片

furthermore1的博客 797

创建单链表并赋值,要求遍历能输出1~9

用表头创建单链表,用头插法创建链表,遍历的结果是9 8 7 6 5 4 3 2 1       具体的源程序如下:#include #include #define OK 0 #define ERROR -1 #define MALLOC_ERROR -2 typedef int ElementType; typedef struct node {

qq_36631131的博客 1万+

循环链表的三个经典例子

一.约瑟夫问题 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人,该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus和他的朋友并不想遵从,他将朋友与自己安排在...

一只快乐的野指针D的博客 9082

图解环形链表——创建、循环赋值与删除

C语言中,链表是一种数据结构,相比较数组的连续存储,链表是一种将内存分散(当前也可以连续)的数据节点通过指针的方式连接在一起,此外,链表不仅可以存储简单的数据类型,还可以存储结构体,只要定义好自己的链表结构体即可。 链表,从名字上来看是一条数据链,一般的链表其末尾节点是没有指向的,但当把链表的末尾节点指定为指向头节点时,则构成了一个环形链表。 1 链表结构体 首先定义环形链表的节点的形式,即一个结构体,简单为例,该结构体内只有一个float数据,以及指向下一个节点的指针,如下: //链表节点结构体 ty

码农爱学习的博客 1367
上一篇: 用c实现“基于线程的多任务系统的实现”
下一篇: 五一
ventry
博客等级 码龄21年 15粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值