当前位置: 首页 > news >正文

7.9数据结构

思维导图

作业

doubleloop.h

#ifndef __DOUBLELOOP_H__
#define __DOUBLELOOP_H__#include <stdio.h>
#include <stdlib.h>typedef int datatype;
typedef struct node
{union{int len;datatype data;};struct node *pri;//前驱指针struct node *next;//后继指针
}node,*node_p;//创建链表
node_p list_create();
//创建节点
node_p node_create(node_p H,datatype data);
//判空
int node_empty(node_p H);
//尾插
int tail_input(node_p H,datatype data);
//遍历
int node_show(node_p H);
//尾删
int del_tail(node_p H);
//销毁
int node_free(node_p H);#endif

doubleloop.c

#include "doubleloop.h"//创建链表
node_p list_create()
{node_p H=(node_p)malloc(sizeof(node));if(NULL==H){printf("---创建链表失败---\n");return NULL;}H->len=0;H->pri=H;H->next=H;printf("---创建链表成功---\n");return H;
}
//创建节点
node_p node_create(node_p H,datatype data)
{node_p new=(node_p)malloc(sizeof(node));if(new==NULL){printf("---创建节点失败---\n");return 	NULL;}new->data=data;new->pri=H;new->next=H;return new;
}
//判空
int node_empty(node_p H)
{if(H==NULL){printf("---入参为空,请检查---\n");return -1;}return H->next==H;
}//尾插
int tail_input(node_p H,datatype data)
{if(H==NULL){printf("---入参为空,请检查---\n");return 0;}node_p new=node_create(H,data);node_p p=H->next;while(p->next!=H){p=p->next;}new->pri=p;p->next=new;H->len++;return 1;
}
//遍历
int node_show(node_p H)
{if(H==NULL||node_empty(H)){printf("---输出有误---\n");return 0;}node_p p=H->next;printf("链表为:H->");while(p!=H){printf("%d->",p->data);p=p->next;}printf("H\n");return 1;
}//尾删
int del_tail(node_p H)
{if(H==NULL||node_empty(H)){printf("---尾删失败,请检查---\n");return 0;}node_p p=H;//H会找到需要位置的前一个节点for(int i=0;i<H->len-1;i++)//len和pos是一个意思,是位置而不是下标,-1为了移动到最后一个的前一个节点停止{p=p->next;}node_p q=p->next;//定义出最后一个节点,方便释放空间p->next=H;//将倒数第二个节点指向NULL,一根线free(q);q=NULL;H->len--;return 1;
}//销毁
int node_free(node_p H)
{if(H==NULL){printf("---链表销毁有误,请检查---\n");return 0;}while(H->next!=H){del_tail(H);}free(H);H=NULL;printf("---链表销毁成功---\n");return 1;
}

相关文章:

7.9数据结构

思维导图 作业 doubleloop.h #ifndef __DOUBLELOOP_H__ #define __DOUBLELOOP_H__#include <stdio.h> #include <stdlib.h>typedef int datatype; typedef struct node {union{int len;datatype data;};struct node *pri;//前驱指针struct node *next;//后继指针…...

Python 文件操作:打开数据处理的大门

在 Python 的学习之旅中&#xff0c;文件操作是一个非常实用且必不可少的技能。不论是数据分析还是日常的数据处理&#xff0c;良好的文件操作技巧都能让你的编程之路更加顺畅。今天&#xff0c;我将带你走进 Python 文件操作的世界&#xff0c;不仅教你如何读写文件&#xff0…...

单对以太网连接器多场景应用

单对以太网连接器应用场景概述 单对以太网&#xff08;Single Pair Ethernet&#xff0c;简称SPE&#xff09;作为一种新兴的以太网技术&#xff0c;以其独特的优势在多个领域得到了广泛的应用。SPE通过单对电缆进行数据传输&#xff0c;支持高速数据传输&#xff0c;同时还能…...

Python pip的更新问题

你是否也出现了更新pip的情况 1、提示更新pip版本 pip install --upgrade pip2、更新操作&#xff0c;我操作了 pip install --upgrade pip更新了&#xff0c;等啊等。。。 然后就是连接超时&#xff0c;安装失败 3、我不信&#xff0c;我就要更新&#xff0c;我还要使用镜…...

[Linux][Shell][Shell基础] -- [Shebang][特殊符号][变量][父子Shell]详细讲解

目录 0.前置知识1.Shebang2.Linux特殊符号整理3.变量4.环境变量5.父子shell0.概念1.创建进程列表(创建子shell执行命令) 6.内置命令 vs 外置命令 0.前置知识 #用于注释shell脚本语⾔属于⼀种弱类型语⾔&#xff1a;⽆需声明变量类型&#xff0c;直接定义使⽤shell三剑客&#…...

DS200CVMAG1AEB处理器 控制器 模块

DS200CVMAG1AEB特征&#xff1a; 高性能&#xff1a;采用先进的控制算法和高功率IGBT器件&#xff0c;可提供高电流和精确的运动控制。 高精度&#xff1a;采用高分辨率编码器和位置环路技术&#xff0c;位置精度可达0.1μm&#xff0c;适用于各种精密机械应用&#xff0c;如数…...

阈值分割后配合Connection算子和箭头工具快速知道区域的ID并选择指定区域

代码 dev_close_window () read_image (Image, E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/标定相机找圆心和焊头修正相机找圆心之算法软件/标定相机找圆心和焊头修正相机找圆心之算法软件/03 标定相机找圆心/S2/1号机/1.bmp) get_image_size …...

【work】AI八股-神经网络相关

Deep-Learning-Interview-Book/docs/深度学习.md at master amusi/Deep-Learning-Interview-Book GitHub 网上相关总结&#xff1a; 小菜鸡写一写基础深度学习的问题&#xff08;复制大佬的&#xff0c;自己复习用&#xff09; - 知乎 (zhihu.com) CV面试问题准备持续更新贴 …...

【LeetCode】12. 小张刷题计划

稳住&#xff0c;能赢&#xff01;没有经验的同学在面试岗位的时候&#xff0c;总是显得手忙脚乱&#xff0c;所以多练习&#xff0c;把技能提升&#xff0c;眼界提升&#xff0c;接着心态放平和&#xff0c;不要慌张&#xff0c;把面试题目读懂读透彻就会大大提升赢的概率。 1…...

Tomcat部署以及优化

1、tomcat tomcat是用java代码的程序&#xff0c;运行的是java的web服务器 tomcat和php一样都是用来处理动态页面&#xff0c;tomcat也可以做为web应用服务器&#xff0c;开源的 php处理.php为结尾的 tomcat 处理.jsp nginx 处理 .html 2、tomcat的特点和功能 1、servle…...

ubuntu 22 安装 lua 环境 编译lua cjson 模块

在 windows 下使用 cygwin 编译 lua 和 cjson 简直就是灾难&#xff0c;最后还是到 ubuntu 下完成了。 1、下载lua源码&#xff08;我下载的 5.1 版本&#xff0c;后面还有一个小插曲), 直接解压编译&#xff0c;遇到一个 readline.h not found 的问题&#xff0c;需要安装 re…...

地下城游戏中都有哪些类型的服务器?

地下城类型的服务器以其独特的魅力吸引了众多玩家。这些服务器通常基于流行的地下城探险游戏&#xff0c;如《Minecraft》的地下城模式或《Dungeon Fighter Online》等&#xff0c;提供了丰富多样的游戏体验。下面&#xff0c;我们将探讨几种不同类型的地下城服务器及其特点。 …...

大模型面试(二)

这次又接到一个大模型岗位的面试。但是从面试过程来看&#xff0c;现在大模型岗位都要求有相关工作经验&#xff0c;还是太难进了。还是说国内公司早就过了培养人的年代了&#xff1f; 问到了哪些知识点&#xff1a; 开源大模型&#xff1a;项目里用的是浦语大模型&#xff0…...

rsync远程同步--累了,明天继续再写~。

rsync官网链接 rsync(Remote Sync,远程同步)开源快速备份工具&#xff0c;是一个用于本地和远程文件同步的Unix-like命令行程序。它使用“快速数据传输算法”&#xff0c;只发送源和目标之间的差异&#xff0c;因此数据传输非常高效。 可以在不同主机之间镜像同步整 个目录树…...

每日刷题(二分查找,匈牙利算法,逆序对)

目录 1.Sarumans Army 2.Catch That Cow 3.Drying 4.P3386 【模板】二分图最大匹配 5. Swap Dilemma 1.Sarumans Army 3069 -- Sarumans Army (poj.org) 这道题就是要求我们在给的的位置放入 palantir&#xff0c;每个 palantir有R大小的射程范围&#xff0c;要求求出最少…...

LLM应用构建前的非结构化数据处理(三)文档表格的提取

1.学习内容 本节次学习内容来自于吴恩达老师的Preprocessing Unstructured Data for LLM Applications课程&#xff0c;因涉及到非结构化数据的相关处理&#xff0c;遂做学习整理。 本节主要学习pdf中的表格数据处理 2.环境准备 和之前一样&#xff0c;可以参考LLM应用构建前…...

如何从数码相机恢复已删除的照片

照片恢复是恢复已删除照片的最佳工具&#xff0c;它带有恢复 RAW 照片的选项。在本文中&#xff0c;我们将解释如何恢复已删除的照片。 不仅对于专业摄影师&#xff0c;对于像我们这样喜欢捕捉回忆的人来说&#xff0c;瞬间相机都是重要的数码设备。遗憾的是&#xff0c;就像智…...

设计模式使用场景实现示例及优缺点(创建型模式——单例模式、建造者模式、原型模式)

创建型模式 单例模式&#xff08;Singleton Pattern&#xff09; 单例模式&#xff08;Singleton Pattern&#xff09;在Java中的使用场景与在其他编程语言中类似&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并提供一个全局的访问点。以下是单例模式的一些常…...

LAMP万字详解(概念、构建步骤)

目录 LAMP Apache 起源 主要特点 软件版本 编译安装httpd服务器 编译安装的优点 操作步骤 准备工作 编译 安装 优化执行路径 添加服务 守护进程 配置httpd 查看 Web 站点的访问情况 虚拟主机 类型 部署基于域名的虚拟主机 为虚拟主机提供域名解析&#xff…...

金南瓜科技SECS/GEM:引领智能制造新潮流

引言 在当今快速发展的半导体行业中&#xff0c;智能制造和自动化生产已成为提升效率和降低成本的关键。金南瓜科技凭借其先进的SECS/GEM解决方案&#xff0c;正成为这一变革的先锋。 SECS/GEM&#xff1a;智能制造的核心 SECS/GEM&#xff08;SEMI Equipment Communications …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

flow_controllers

关键点&#xff1a; 流控制器类型&#xff1a; 同步&#xff08;Sync&#xff09;&#xff1a;发布操作会阻塞&#xff0c;直到数据被确认发送。异步&#xff08;Async&#xff09;&#xff1a;发布操作非阻塞&#xff0c;数据发送由后台线程处理。纯同步&#xff08;PureSync…...

Pandas 可视化集成:数据科学家的高效绘图指南

为什么选择 Pandas 进行数据可视化&#xff1f; 在数据科学和分析领域&#xff0c;可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具&#xff0c;如 Matplotlib、Seaborn、Plotly 等&#xff0c;但 Pandas 内置的可视化功能因其与数据结…...

生产管理系统开发:专业软件开发公司的实践与思考

生产管理系统开发的关键点 在当前制造业智能化升级的转型背景下&#xff0c;生产管理系统开发正逐步成为企业优化生产流程的重要技术手段。不同行业、不同规模的企业在推进生产管理数字化转型过程中&#xff0c;面临的挑战存在显著差异。本文结合具体实践案例&#xff0c;分析…...