已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change(p),交换p所指向的结点和它的前缀结点的顺序。
#include<assert.h>
typedef struct SLnode
{int data;struct SLnode* prior;struct SLnode* next;
}SLnode,*SLnodelist;
//创建结点
SLnode* createhead(int data)
{SLnode* newnode = (SLnode*)malloc(sizeof(SLnode));newnode->data = data;newnode->next = newnode->prior = newnode;return newnode;
}
//初始化哨兵位
SLnode* ListInit()
{SLnode* newnode = createhead(0);
}
//尾插
void ListPushBank(SLnode* plist, int x)
{assert(plist);SLnode* ret = plist->prior;SLnode* newnode = createhead(x);ret->next = newnode;newnode->next = plist;newnode->prior = ret;plist->prior = newnode;
}
void printlist(SLnode* plist)
{SLnode* ret = plist->next;while (ret != plist){printf("%d->", ret->data);ret = ret->next;}printf("NULL\n");
}
void change(SLnodelist p)
{SLnodelist q;q = p->prior;q->prior->next = p;p->prior = q->prior;q->next = p->next;p->next->prior = q;q->prior = p;p->next = q;}
int main()
{int n, num;SLnode* plist = ListInit();printf("请输入链表的长度\n");scanf("%d", &n);printf("请输入元素\n");for (int i = 0; i < n; i++){scanf("%d", &num);ListPushBank(plist,num);}printf("双链表的元素如下\n");printlist(plist);printf("请输入你要交换的的结点的值\n");SLnodelist q = (SLnodelist)malloc(sizeof(SLnode));scanf("%d", &q->data);SLnodelist p;p = plist->next;while (p != plist){if (p->data == q->data){change(p);break;}else{p = p->next;}}printf("交换后\n");printlist(plist);return 0;
}

相关文章:
已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change(p),交换p所指向的结点和它的前缀结点的顺序。
#include<assert.h> typedef struct SLnode {int data;struct SLnode* prior;struct SLnode* next; }SLnode,*SLnodelist; //创建结点 SLnode* createhead(int data) {SLnode* newnode (SLnode*)malloc(sizeof(SLnode));newnode->data data;newnode->next newno…...
什么是Tensor???为什么人工智能领域论文中经常出现这个名词
文章目录 什么是Tensor??数学符号表示 什么是Tensor?? Tensor,中文叫张量。Tensor实际上就是一个多维数组(multidimensional array)。 而Tensor的目的是能够创造更高维度的矩阵、向量。 数学符…...
爬虫练习_01
前言 基础爬虫小练习01 一、requests板块使用 demo_01 import requests from lxml import etreeurl "https://movie.douban.com/top250" headers {"authority": "movie.douban.com","method": "GET","path"…...
Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task02笔记
从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。 Datawhale官方的Task2链接:Task02 往期Task1链接:Ta…...
多模态大语言模型的免训练视觉提示学习 ControlMLLM
ControlMLLM: Training-Free Visual Prompt Learning for Multimodal Large Language Models github paper 在本研究中,提出了一种无需进行训练的方法,通过可学习的潜变量优化将视觉提示注入到多模态大型语言模型(MLLMs)中。 在…...
Oracle|DM 常用|不常用 SQL大口袋
目录 一、前言 二、SQL写法 1、sql获取某一条数据中的前一条和后一条 2、实现like多个值的查询(Oracle和dm支持,MySQL未试过) 3、start with connect by prior 使用方法 4、用hextoraw解决select、update、delete语句执行慢 5、ORA-00…...
嵌入式软件--模电基础 DAY 1
C语言的学习告一段落了,要多多注意复习回顾,温故而知新,学习的过程就是与遗忘作斗争。接下来就是嵌入式学习中硬件电路方面的知识了。 一、电学基础 1.电流 电流(Current)是电荷在单位时间内通过导体横截面的流动量…...
【Nacos无压力源码领读】(二) 集成 LoadBalancer 与 OpenFeign
上一篇文章中, 详细介绍了 Nacos 注册中心的原理, 相信看完后, 大家应该完全掌握了 Nacos 客户端是如何自动进行服务注册的, 以及 Nacos 客户端是如何订阅服务实例信息的, 以及 Nacos 服务器是如何处理客户端的注册和订阅请求的; 本文承上启下, 在订阅服务实例的基础上, 介绍如…...
《投资的原理》阅读笔记二——价值投资真是王者吗?
《投资的原理》的第二章是《史记货殖列传里的八大投资金句》,作者在这一章里宣扬的主要观点是价值投资才是稳妥的投资之路。但我觉得作者讲述的很多例子,包括经典的“两个金条放在一起,你告诉我那根是高尚的”,更多的应该体现在“…...
SSH、FTP、SFTP相关协议详解
一、SSH 1、定义 SSH(Secure Shell)是一种网络协议,用于加密方式远程登录到另一台计算机上,并执行命令或程序。SSH由IETF的网络小组(Network Working Group)所制定,是建立在应用层基础上的安全…...
C语言进阶——一文带你深度了解“C语言关键字”(中篇6)
本篇文章记录我学习C语言进阶知识——C语言关键字,旨在记录分享,希望我的分享能带给你不一样的收获! 目录 一、return关键字 二、const 关键字也许该被替换为 readolny (一)、 const 修饰的只读变量 (二…...
自建极简Ethercat主站-第8章 FOE基础功能实现
文章目录 第8章 FOE8.1 FOE简介8.2 FOE 数据结构8.2.1 FOE帧格式8.2.2 FOE请求8.3 数据传输流程8.3.1 读流程8.3.2 写流程8.3.3 忙操作8.3.4 代码示例第8章 FOE 源码地址 8.1 FOE简介 FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉…...
SQL Zoo 8.Using Null
以下数据均来自SQL Zoo 1.List the teachers who have NULL for their department.(列出所属部门为NULL的教师) select name from teacher where dept is null 2.Note the INNER JOIN misses the teachers with no department and the departments wit…...
LeetCode274. H 指数
题目链接: 274. H 指数 - 力扣(LeetCode) 思路分析:这个题目可以使用哈希表来以空间换时间,我们设置一个数组v来统计每一个对应的影响因子的文章出现的数量,遍历一遍后,v[i]表示影响因子为i的…...
概述:Dubbo、Nacos、 Zookeeper 等分布式服务协调与治理等技术
目录 1. Dubbo 2. Nacos 3. Zookeeper Dubbo、Nacos、Zookeeper 是分布式服务协调与治理领域中的关键技术,它们在微服务架构和分布式系统中扮演着重要角色。以下是对这些技术的详细介绍: 1. Dubbo 概述: Dubbo 是一个高性能、轻量级的开…...
【LINUX】小工具降耦合,全内核函数插入宏摸索测试中。。
这阵子把这个小工具对外的耦合度降了下, include/linux/printk_self.h r77683962/linux-6.9.0 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/blob/master/include/linux/printk_self.h 这个用于初始化打印日志的级别和打印次数: void Param…...
24/8/12算法笔记 复习_线性回归
import numpy as np#导入包 X np.array([[1,1],[2,1]])#构造矩阵 y np.array([14,10])np.linalg.solve(X,y) #linalg是线性代数,用于求解线性方程AX b,solve计算线性代数回归问题X.T#转置 a X.T.dot(X)#矩阵乘法B np.linalg.inv(a)#求逆矩阵from sklearn.linea…...
Linux系统驱动(十四)输入子系统
文章目录 一、输入子系统(一)输入子系统框架结构(二)输入子系统的API 二、实现两个按键的驱动(一)实现思路(二)代码实现 一、输入子系统 在linux系统中使用输入子系统驱动上报鼠标&…...
力扣(2024.08.12)
1. 98:验证二叉搜索树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isValidBST(self, r…...
最新版的AutoGPT,我搭建好了
最近AutoGPT不是更新了嘛 安装 我按照官方的教程 在本地搭建好了 改动 可见的改动,主要是把原来的纯命令行改成前后端的形式 看下前端界面 界面比较简单,主要分3个大块 监控 第一个是监控 主要是看你在 build 里构建的Agents的运行情况 build 第一个是Ag…...
Python基础语法:常用内置函数
round():四舍五入 # 省略 ndigits print(round(3.14)) # 输出 3(int) print(round(3.66)) # 输出 4# 指定 ndigits print(round(3.14159, 2)) # 输出 3.14(float) print(round(3.666, 2)) # 输出 3.67# …...
PCB虚焊/走线断裂/焊盘脱落工程师易漏判
PCB 故障中,30% 并非元件损坏,而是 PCB 本身的隐性故障—— 虚焊、走线断裂、焊盘脱落、过孔开路。这类故障外观隐蔽、时好时坏、排查难度大,很多工程师反复更换元件仍无法解决,最终误判为 “板报废”。一、PCB 隐性故障核心成因…...
论文润色深度测评:GPT-5.5 + Gemini 3.1 Pro:教你学会1+1>2的论文润色方法
各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。 2026年的科研圈,AI工具的选择已经从有没有变成了强不强,七哥评测了GPT…...
【DeepSeek集成测试黄金标准】:20年专家亲授5大避坑指南与自动化落地框架
更多请点击: https://intelliparadigm.com 第一章:DeepSeek集成测试黄金标准的演进与核心价值 集成测试在大语言模型工程化落地过程中已从“验证功能可用”跃迁为“保障推理一致性、上下文鲁棒性与安全边界的三位一体质量门禁”。DeepSeek系列模型&…...
Git Bash 中无法启动 Claude Code ?
最近需要在 git bash 中跑 Claude Code 。git bash 是随 git for windows 套件安装的,很久没更新了,结果启动 Claude Code 报错:Warning: no stdin data received in 3s, proceeding without it. If piping from a slow command, redirect st…...
嵌入式Linux驱动开发 —— 从DTS到代码的桥梁与简单OF系列API(3)
接前一篇文章:嵌入式Linux驱动开发 —— 从DTS到代码的桥梁与简单OF系列API(2) 节点查找 API:如何在设备树中定位目标节点 有了数据结构基础,现在我们可以开始讲具体的API了。第一步是找到你要操作的节点。就像你想操…...
告别KITTI!用TartanAir数据集在Unreal Engine+AirSim里复现那些让VSLAM算法“翻车”的雨天和黑夜
超越KITTI:用TartanAir数据集在虚拟极端环境中锤炼VSLAM算法当视觉SLAM算法在KITTI数据集上取得95%的准确率时,开发者们常常会松一口气——直到这些算法被部署到真实世界的雨夜街道上。突然之间,那些在阳光明媚的德国道路上表现优异的特征点检…...
【C++】零基础入门 · 第 6 节:数组
上一节我们学习了函数,知道了如何把代码封装起来方便复用。但在实际编程中,你很快就会遇到一个问题:如果要存储 100 个学生的成绩,难道要定义 100 个变量吗?这显然不现实。数组就是 C++ 给出的答案——它让我们能用一个变量名管理一组相同类型的数据。 1. 为什么需要数组…...
NPU跑LLM实战指南:KV Cache动态性如何突破硬件限制
NPU跑LLM实战指南:KV Cache动态性如何突破硬件限制 副标题: 从预分配+Attention Mask到三层软件栈,完整解析NPU推理架构 痛点:为什么NPU跑LLM这么难? LLM的生成机制和NPU的硬件特性存在根本冲突: LLM特性 NPU特性 冲突点 逐token生成 固定shape执行 KV Cache动态增长 动…...
023、深度可分离卷积:MobileNet背后的计算优化
深度可分离卷积:MobileNet背后的计算优化 一个让我加了两天班的bug 去年调试一块基于Cortex-M7的AI推理引擎,跑MobileNetV1时发现推理速度比理论计算慢了整整一个数量级。当时我盯着逻辑分析仪上的波形,CPU在卷积层卡了将近300ms——这不对劲,理论计算应该只要30ms。 排…...
