当前位置: 首页 > 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 …...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...