静态链表的应用

简介

静态链表也是由数据域与指针域两部分组成的一个结构体,只不过指针域是由整数下标表示

struct node{int data;//数据域int next;//指针域};

求两个链表首个公共结点的地址

#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=100000000;
struct node{char data;int next;bool flag;
}nodes[maxn];
int main(){for(int i=0;i<maxn;i++)nodes[i].flag=false;int addr1,addr2,n;//链表1的首地址addr1、个数n,链表2的首地址addr2scanf("%d%d%d",&addr1,&addr2,&n);int addr,next;char data;for(int i=0;i<n;i++){//将链表信息边输入边存入scanf("%d%s%d",&addr,&data,&next);nodes[addr].data=data;nodes[addr].next=next;}int j;for( j=addr1;j!=-1;j=nodes[j].next)//遍历链表1,nodes[j].flag=true;//改flag为truefor( j=addr2;j!=-1;j=nodes[j].next){//遍历链表2if(nodes[j].flag==true) break;//找到在链表1中首个出现过的结点}if(j!=-1) printf("%05d\n",j);//返回结点地址else printf("-1\n");return 0;
}

由小到大输出静态链表

#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=100000;
struct node{int now;int data;int next;bool flag;
}nodes[maxn];
bool cmp(node a,node b){//排序后,flag==true都在flag==false左端if(a.flag==false||b.flag==false)//碰到无效结点排序return a.flag>b.flag;//true在前,false在后else return a.data<b.data;//给结点排序
}
int main(){for(int i=0;i<maxn;i++)nodes[i].flag=false;int begin,num;scanf("%d%d",&begin,&num);int addr1,data,addr2;for(int i=0;i<num;i++){scanf("%d",&addr1);scanf("%d%d",&nodes[addr1].data,&nodes[addr1].next);nodes[i].now=addr1;}int position=begin,count=0;while(position!=-1){nodes[position].flag=true;//标记count++;position=nodes[position].next;}if(count==0)printf("0 -1\n");else{sort(nodes,nodes+maxn,cmp);//地址不连续,只能全部都考虑printf("%d %d\n",count,nodes[0].now);//输出首个地址for(int i=0;i<count;i++){if(i!=count-1)printf("%d %d %d\n",nodes[i].now,nodes[i].data,nodes[i].next);elseprintf("%d %d -1\n",nodes[i].now,nodes[i].data);}}return 0;
}

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

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

相关文章

贝叶斯统计——入门级笔记

绪论 1.1 引言 全概率公式 贝叶斯公式 三种信息 总体信息 当把样本视为随机变量时&#xff0c;它有概率分布&#xff0c;称为总体分布&#xff0e; 如果我们已经知道总体的分布形式这就给了我们一种信息&#xff0c;称为总体信息 样本信息 从总体中抽取的样本所提供的信息 先…

【PX4学习笔记】13.飞行安全与炸机处理

目录 文章目录 目录使用QGC地面站的安全设置、安全绳安全参数在具体参数中的体现安全绳 无人机炸机处理A&#xff1a;无人机异常时控操作B&#xff1a;无人机炸机现场处理C&#xff1a;无人机炸机后期维护和数据处理D&#xff1a;无人机再次正常飞行测试 无人机飞行法律宣传 使…

22. 【Linux教程】Linux 结束进程

前面小节介绍了如何启动一个程序进程&#xff0c;还介绍了如何查看系统进程信息&#xff0c;本小节来介绍如何通过 kill 命令结束进程。 1. Linux 进程信号介绍 下面列举出 Linux 进程信号的描述&#xff1a; 信号名称描述1HUP挂起2INT中断3QUIT结束运行9KILL无条件终止11SEG…

STM32CubeIDE开发(二), 全面解析cubeMX图形配置工具

STM32CubeIDE开发(二&#xff09;&#xff0c; 全面解析cubeMX图形配置工具 已于 2023-03-15 10:31:13 修改1374 收藏 29 分类专栏&#xff1a; ​编辑STM32CubeIDE开发实践案例专栏收录该内容 36 篇文章43 订阅 订阅专栏 目录 一、cubeIDE 集成cubeMX 二、STM32CubeMX…

Python format函数

在Python编程中&#xff0c;format()函数是一个非常重要且常用的字符串格式化方法&#xff0c;用于将各种数据类型插入到字符串中&#xff0c;并指定其格式。这个函数可以动态地生成各种格式的字符串&#xff0c;包括文本、数字、日期等。本文将深入探讨Python中的format()函数…

【Vuforia+Unity】AR04-地面、桌面平面识别功能

不论你是否曾有过相关经验&#xff0c;只要跟随本文的步骤&#xff0c;你就可以成功地创建你自己的AR应用。 官方教程Ground Plane in Unity | Vuforia Library 这个功能很棒&#xff0c;但是要求也很不友好&#xff0c;只能支持部分移动设备&#xff0c;具体清单如下&#xf…

微服务开发工具及环境搭建

后端 安装jdk a. 官网下载b. 安装c. 配置环境变量参考&#xff1a; 博客 安装IDEA a. 官网下载社区版&#xff08;免费&#xff09; IntelliJ IDEA Community b. 安装 下载链接 前端 安装node 及 npm 下载链接 安装vscode 下载链接 安装Hbuilderx 下载链接 虚拟机环境 …

猜拳游戏(java)

猜拳游戏 import java.util.Random; import java.util.Scanner; /* 请编写一个猜拳游戏 有个人 Tom &#xff0c;设计他的成员变量&#xff0c;成员方法&#xff0c;可以让电脑猜拳 电脑每次都会随机生产0&#xff0c;1&#xff0c;2 0表示石头 1表示剪刀 2表示布 并要可以显示…

samber/lo 库的使用方法: condition

samber/lo 库的使用方法&#xff1a; condition samber/lo 是一个 Go 语言库&#xff0c;使用泛型实现了一些常用的操作函数&#xff0c;如 Filter、Map 和 FilterMap。汇总目录页面 这个库函数太多&#xff0c;因此我决定按照功能分别介绍&#xff0c;本文介绍的是 samber/l…

Socket通信---Python发送数据给C++程序

0. Problems 很多时候实现某种功能&#xff0c;需要在不同进程间发送数据&#xff0c;目前有几种主流的方法&#xff0c;如 让python和C/C程序互相发送数据&#xff0c;其实有几种方法&#xff1a; 共享内存共享文件Socket通信 在这里只提供Socket通信的例程&#xff0c;共享…

面试复盘——10——一面全答了,二面全挂了...

前言 跨越了两年的一场面试hhhh&#xff0c;一面答的很不错&#xff0c;但可惜二面&#xff0c;基本一个没说上来…很离谱。 一面(23.12.29) 妈的&#xff0c;一面录音没录上。。。不管他了 二面(24.1.2) 为什么想从&#xff08;当前实习的地方&#xff09;离职 实习项目…

挑战30天学完Python:Day16 日期时间

&#x1f4d8; Day 16 &#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点…

shell脚本用法小记

shell脚本用法小记 1. 参数含义1.1 参数"-z"的含义 2. 语法小记if语法 1. 参数含义 1.1 参数"-z"的含义 在shell 脚本中&#xff0c; -z 是一个选项&#xff0c;用于判断字符串是否为空。 if [ -z $2 ]; thenros2 run workspace_name node_name --ros-a…

奇异递归模板模式应用5-静态多态

动态多态&#xff1a;C动态多态是利用虚函数特性实现的&#xff0c;即基类指针(引用&#xff09;指向派生类指针(引用)。由于虚函数的实现是在运行期进行的&#xff0c;因而会产生运行期开销&#xff08;虚表指针偏移&#xff0c;与分支预测器和CPU指令流水线相关&#xff09;。…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.02.10-2024.02.15

2024.02.10–2024.02.15&#xff1a; arXiv中发表的关于大语言模型&#xff08;LLMs&#xff09;相关的文章&#xff0c;已经筛选过一部分&#xff0c;可能有的文章质量并不是很好&#xff0c;但是可以看出目前LLM的科研大方向&#xff01; 后续我会从中选择出比较有意思的文章…

【关于深度学习的一些资料】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 动手学深度学习Awesome Deep LearningTensorFlow Official ModelsPyTorch Image ModelsDeep Reinforcement LearningNeural Style Transfer 动手学深度学习 动手学深度学习 https://zh.d2l.ai/chapter_installation/index.…

Java Web(七)__Tomcat(二)

Tomcat工作模式 Tomcat作为Servlet容器&#xff0c;有以下三种工作模式。 1&#xff09;独立的Servlet容器&#xff0c;由Java虚拟机进程来运行 Tomcat作为独立的Web服务器来单独运行&#xff0c;Servlet容器组件作为Web服务器中的一部分而存在。这是Tomcat的默认工作模式。…

Java开发中计算金额时使用什么数据类型?(企业真题)

Java开发中计算金额时使用什么数据类型&#xff1f; 不能使用float或double&#xff0c;因为精度不高。不容许舍入误差 使用BigDecimal类替换&#xff0c;可以实现任意精度的数据的运算。

Java Web(七)__Tomcat(一)

JavaWeb 服务器 介绍 为什么需要&#xff1f; Web服务器是一个应用程序&#xff08;软件&#xff09;&#xff0c;对HTTP协议的操作进行封装&#xff0c;使得程序员不必直接对协议进行操作&#xff0c;让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。Web服…

Web安全之浅见

备注&#xff1a;这是我在2017年在自己的网站上写的文章&#xff0c;今天迁移过来。 昨天去参加了公司组织的一个关于网络安全的培训&#xff0c;了解了很多关于网络安全方面的知识&#xff0c;也才意识到网络安全是一项极其重要的领域。 本篇文章主要聊聊Web安全。不过我对于网…