自己写的第一个综合链表

Python:两个链表的第一个公共节点 牛客网上的剑指 offer的在线编程: 题目描述 输入两个链表,找出它们的第一个公共结点。 思路: 第一种情况:相同长度有交点 两个指针一起走,步长一致,碰到第一个相同的节点 p1 == p1,退出循环,return p1。 第二种情况:相同长度无交点 两个指针一起走,直到走到最后一个节点,p1.next 和 p2.next都为 None,满足 相等的条件,退出循环,retu 阅读详情

#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct student)
 

/*节点的结构体     */
typedef struct student
{
  long num;
  int score;
  struct student * next;
}STU;
/*void main(){

int j;
j=LEN;
printf("%d",j);      1,2,3在这儿竟都是四个字节!

1.printf("%d",sizeof(long));
2.printf("%d",sizeof(int));
2.printf("%d",sizeof(struct student *));
}
*/
STU *creat()/*creat函数用于创建链表*/
{STU * head,*p1,*p2;
head=NULL;
p1=p2=(STU *)malloc(LEN);/*创建第一个内存段*/
 scanf("%ld,%d",&p1->num,&p1->score);
if (p1->num!=NULL)
{                  /*若满足条件,则将其定位为第一个节点*/
head=p1;

}

p1=(STU *)malloc(LEN);
scanf("%ld,%d",&p1->num,&p1->score);
head->next=p1;


while(p1->num!=NULL)
{p2->next=p1;
p2=p1;/*综合调试时,这句忘了写了,直接导致p2 始终志向head,导致error*/
p1=(STU *)malloc(LEN);   /*令p1做头p2做尾*/
scanf("%ld,%d",&p1->num,&p1->score);


}
p2->next=NULL;
return (head);/*最后条件不符,将p2的next志向0*/
}
/*void main(){
STU *head;
head=creat();
printf("%0",head);

}*/

 

 


/*输出链表*/
void print(STU * head)
{
STU * p;
p=head;
if (head!=NULL)
{

 do{
 printf("%ld,%d/n",p->num,p->score);
 p=p->next;
 }while(p!=NULL);
}

}

 


/*在表中找相应的num,并返回相应的结果,若找到则将相应的节点的地址返回*/
STU * search(STU * head,long num)
{
   STU * p=head;
   if(head==NULL)
   {printf("this is an empty table!");
   return(NULL);}
   else {
       while(p->next!=NULL && p->num!=num)
    {p=p->next;
   
   
    }
    if(p->next==NULL){printf("not exist in this table,sorry!");
    return(NULL);}
    else{printf("it exist in this table ,yeah");return(p);}
   }
}

 

 

 

/*删除链表*/
STU * del(STU * head,long num)
{
  STU *p1,*p2;
  p1=p2=head;
  if(head==NULL)      /*若是空表,则直接goto end 跳出程序*/
  {printf("this is an empty table");return(NULL);goto end;}
 
  if(head->num==num){head=p1->next;}/*删第一个*/
 
  else{
   do {
   p2=p1;
   p1=p1->next;
   }while(p1->next!=NULL && p1->num!=num);
   if(p1->next==NULL)
   {
    if(p1->num==num){p2->next=NULL;}/*删最后一个*/
    else{printf("not exist in this table");return (head);}
       /*不在表中*/
  
   }
   else{p2->next=p1->next;return(head);}
 
      /*在表的中间*/
 
 
 
 
 
 
 
 
  }
end:return(head);

}

 

/*插入节点*/
STU * insert(STU * head,STU * stud)
{
  STU * p0,*p1,*p2;
  p1=head;
  p0=stud;
  if(head==NULL){head=p0;p0->next=NULL;}/*空链表,则将其插入,链表中只有一个节点*/
  else{
  while((p0->num>p1->num)&&(p1->next!=NULL))
  {p2=p1;       /*p0是待插入的节点,p1是链表节点,p1不断向后检索*/
  p1=p1->next;
  }
  /*当条件不满足时,跳出while*/
  if(p0->num<=p1->num){
   if(p1==head)head=p0; /*志向第一个节点*/
   else p2->next=p0; /*志向中间的节点*/
   p0->next=p1;
  }
  else{p1->next=p0;p0->next=NULL;}
 
  }

return(head);
}

 


void main(){

STU *head,stu;
long del_num;
printf("intput records;/n");
head=creat();
print(head);
printf("intput the deleted num/n");
scanf("%ld",&del_num);

head=del(head,del_num);
print(head);
printf("input the inserted record:/n");
scanf("%ld,%d",&stu.num,&stu.score);
head=insert(head,&stu);
print(head);

 

} 

各种AI的调试日记——辅助工作篇 记录使用各种AI(语言大模型)的心得和总结 阅读详情

相关推荐

用HFSS复现经典论文:从零搭建带孔缝屏蔽箱体模型(附完整建模步骤与避坑指南)

本文详细介绍了如何使用HFSS电磁仿真软件复现经典论文中的带孔缝屏蔽箱体模型,包括从零搭建模型、设置激励与边界条件、求解优化及结果验证的全过程。特别提供了建模中的布尔运算陷阱、激励设置技巧等实操难点的避坑指南,帮助工程师和学生深入理解电磁屏蔽效能研究。

weixin_30530339的博客 157

链表 - 找到链表的第一个结点

题目 寻找链表的头节点,每个节点,有 id 和 nextId 两个属性,nextId 表示指向节点 id。现在请实现一个办法寻找该链表的头节点。 PS. 考虑一下链表环状,以及节点不在链表内等异常情况,出现异常时,打印异常消息即可。 解答 const findFirstNode = (nodeList) => { let nodes = new Map()//把当前结点和下一个结点反向存入map nodeList.forEach(item => nodes.set(item.n

weixin_43758603的博客 2089

VLA、世界模型与端到端在智驾中的本质关系与工程落地

世界模型并非3D重建,而是对环境状态转移函数的可微分建模;VLA不是视觉+语言+动作的简单拼接,核心在于跨模态语义对齐。二者共同支撑具身智能系统实现从感知到行动的闭环推演,其技术价值体现在长尾场景泛化能力提升与决策延迟降低。在自动驾驶领域,真实量产方案均采用VLA架构作为多模态感知基础,嵌入轻量级世界模型以支持反事实轨迹推演,并通过WA硬件封装保障实时性,最终由端到端控制层完成像素到扭矩的语义贯通。这种混合架构已成L2+/L3智驾系统的工程共识。

weixin_34163553的博客 365

两个链表的第一个公共结点

两个链表的第一个公共结点 题目 输入两个链表,找出它们的第一个公共结点。 示例 示例 1: 1, 2, 3, 4, 5, 6, 7, 8, 9 10,11, 4, 5, 6, 7, 8, 9 返回4 解题 思路 两个链表定义两个指针指向头节点,然后同时一步一步指向next,当next为null时,分别指向对方的头结点。 直到指针指向的引用为同一个对象就是所求, 因为两个相交链表只有相交点前面的长度...

程序员大航子 1753

ESP32-S3开发环境避坑指南:VS Code+ESP-IDF离线安装全流程(附国内镜像加速)

本文提供了一份详细的ESP32-S3开发环境离线安装指南,重点解决网络依赖问题。通过整合国内镜像加速,手把手教你完成VS Code、ESP-IDF框架、工具链及Python依赖的本地化部署,实现稳定、可重复的开发环境搭建,大幅提升IoT开发效率。

peach的博客 961

PCL 计算点云直线拟合的精度评价标准——直线度

计算点云直线拟合的精度评价标准——直线度

点云侠的博客 1042

判断链表中是否有环及链表开始入环的第一个节点

(1)给定一个链表,判断链表中是否有环: 我们可以用快慢指针的方法解决这个问题。fast指针一次走2步,slow指针一次走1步,则当两个指针走一次时两个指针相差1步,走两次时相差2步,以此类推当走n次时fast指针与slow指针相差n步,每多走一次两个指针之间相差步数加1。 若slow走n步入环,则此时fast以入环且比slow快n步,因为在环中,故我们可以看作fast指针在追赶slow指针,...

qq_41639336的博客 2462

Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图

今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于

知无涯 4967

两个链表相交,要求找出第一个相交的节点

《编程之美》里面有一篇是讲如何判断两链表是否相交,读后觉得原文太过啰嗦。于是,笔者总结了一下,此类问题可以扩展为两大类,分别是: 1、单链表与环问题http://blog.youkuaiyun.com/liuxialong/archive/2011/06/20/6555850.aspx 2、单链表相交与环问题(本文) 给定两单链表A、B,只给出两头指针。请问: 1、如何判断两单链表

小憩一下 2783

SAP ABAP 接口管理服务(ZIF)开源项目介绍

接口管理服务(ZIF)开源项目基于 SAP ABAP系统,是一款对标SAP PI/PO 的轻量接口管理产品。他通过独立开发包部署在ABAP系统中,包含接口注册、接口管理、日志服务及其他配套功能,拥有丰富的技术沉淀并通过市场检验,目前已被多家企业应用在SAP ERP系统中。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1740

观测器选择与工程实践建议

摘要:永磁同步电机(PMSM)无传感器控制中,观测器选型需综合考虑应用场景、性能需求与成本。消费级(家电、工具)推荐滑模观测器(SMO),成本低、鲁棒性强;工业级(伺服、泵阀)适用扩展卡尔曼滤波器(EKF),精度高但计算复杂;车规级(EPS、主驱动)需混合观测器(SMO+EKF),兼顾全速域性能与可靠性。低速时需高频注入法,IPMSM更适用。SMO易实现但存在抖振,EKF调试复杂。未来趋势是混合架构与AI增强,提升适应性与性能。选型需权衡速度范围、电机类型、处理器能力及成本。

汽车软件开发 145

两个链表的第一个公共结点 java

题目:输入两个链表,找出它们的第一个公共结点。 面试的时候碰到这道题,很多应聘者的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,没遍历到一个结点的时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上的结点一样,说明两个链表在这个结点上重合,于是就找到了他们的公共结点。如果第一个链表的长度为m,第二个链表的长度为n,显然该方法的时间复杂度为O(mn). 通

samjustin的博客 2228

CLRNet车道线检测模型在Orin Nano Super开发板上的全栈部署与优化实践

本文详细介绍了将CLRNet车道线检测模型部署到NVIDIA Orin Nano Super开发板的全过程。内容包括:1) Orin开发板硬件规格分析;2) JetPack SDK环境配置与Python虚拟环境搭建;3) CLRNet模型架构解析与PyTorch实现;4) 模型转换与TensorRT加速优化方法。通过系统性的环境配置、模型转换和性能优化,为边缘计算场景下的车道线检测应用提供了完整的解决方案,实现了在Orin平台上的高效部署。

huanghm88的专栏 226

寻找两个相交链表的第一个公共节点

//寻找两个相交链表的第一个公共节点 // 寻找两个链表的第一个公共节点.cpp : Defines the entry point for the console application. // /* 1.最简单的方法就是先顺序访问其中一个链表,在每访问一个节点时,都对另外一个链表进行遍历,看节点是否相等   直到找到一个相等的节点位置,如果链表长度分别是m,n 则时间复杂度为O(mn

谦言万语的专栏 2554

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

两个链表的第一个公共节点

题目描述 输入两个链表,找出它们的第一个公共结点。 **思路:**如果有公共节点,则两个链表的next指向的是相同的.目前能想到的方法是,分别求为2个链表长度n1和n2,两个长度之差为n2-n1,长的先走n2-n1,短的再走,当他们next相同则是第一个公共节点. def getLenOfList(headList): lenth=0 p=headList while p:...

u012606924的博客 178

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

两个链表的第一个交点

题目描述 输入两个链表,找出它们的第一个公共结点。 分析:首先计算两个链表的长度,然后求长度差diff,随后将长链表向后移动diff位,最后同时移动求交点(两个链表相交,尾指针必然相同 参考https://blog.youkuaiyun.com/weixin_43871369/article/details/89242850) 参考代码: /* struct ListNode { int val;...

夏洛克福尔摩斯 325

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

链表 寻找2个链表的第一个公共节点

输入两个链表,找出它们的第一个公共结点。 思路:由于从某个节点开始2个链表相交,那么之后的节点完全一样 先求出2个连表长度  先使得长的链表  先走差值的长度 然后2个指针并排前进,并判断是否相等,若相等即为第一个公共节点 (需要注意 NULL的情况) class Solution { public: ListNode* FindFirstCommonNode( ListNod...

一只老风铃 657

两个单向链表,找出它们的第一个公共结点。

/* copyright@nciaebupt 转载请注明出处 题目:两个单向链表,找出它们的第一个公共结点。 链表的结点定义为: struct ListNode { int m_n Key ; ListNode * m_pNe xt ; }; 分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软的面试题中,链表出现的概

nciaebupt 1549

求链表是否有环和第一个交点

这道题做起来简单,但是证明比较麻烦。自己的证明很可能有错误,还望指正。   一 是否有环 (1)用追击法,一个指针每次前进1步,另一个指针每次前进2步。 设链表中不包括环的长度为L1,环的长度为L2. 假设走s步之后相交,等价于   式(1)(s-L1)mod L2 = (2s-L1)mod L2有解。即s步之后相交)(s-L1)mod L2 = (2s-L1)mod L2有解 由式(

crazyhacking的专栏 1250

剑指offer:两个链表得第一个公共节点

题目: 输入两个链表,找出它们的第一个公共结点。 什么是公共节点:两个链表公用的节点,也就是这个节点既出现在这个链表也出现在另一个链表。这就有一个性质了,那就算这个公用节点之后的节点都是共同使用的。 1.暴力方法 ...

weixin_42289038的博客 336

两个链表的第一个公共结点-链表专题

两个链表的第一个公共结点的四种思路!!

m0_56642224的博客 1443

两个单链表相交,找出第一个交点

题目 给两个单链表,如何判断两个单链表是否相交?若相交,则找出第一个相交的节点 理解 解这道题之前,我们需要首先明确一个概念: 如果两个单链表有共同的节点,那么从第一个共同节点开始,后面的节点都会重叠,直到链表结束 因为两个链表中有一个共同节点,则这个节点里的指针域指向的下一个节点地址一样,所以下一个节点也会相交,依次类推。所以,若相交,则两个链表呈“Y”字形。如下图: ...

qq_37876078的博客 1121

python 两个链表的第一个公共结点

''' 题目描述 输入两个链表,找出它们的第一个公共结点。 思路一: 先求出每个链表的长度,分别为a+n和b+n n表示两个链表公共部分的长度,从第一个公共节点向后的每个节点都是两个链表的公共节点 也就是说从第一个相同的公共节点往后的所有节点都相同 用指针1和指针2分别记录两个列表中当前感兴趣的位置索引值 则如果a>b,相当于让指针1比指针2多走a-b步,则找到第一个两个指针所指向的内容相...

WYXHAHAHA123的博客 522

链表综合

今天闲得无聊,写了几个链表的常用函数,我发现这玩意儿不经常写确实容易忘,归根结底还是没有深刻理解指针的含义,所以这种东西还是要多写多思考,其中链表反转在面试笔试中经常出现,往年南大计算机系都会考一个链表反转,今年是机试所以没考,室友们去公司笔试也全都是这类题,应该给予足够的重视啊! #include #include using namespace std; struct node {

恒河沙无数 390
下一篇: Microsoft visual c++6.0的一点小小安装经验
vcmaker
博客等级 码龄19年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值