【linux软件基础知识】链表数据结构

devtools/2024/11/12 23:45:16/

双向循环链表

在这里插入图片描述
链表是用LIST_HEAD(list_name)宏创建的。如上图中的(b)空链表所示,它申明类型为 list head的变量name,该变量作为新链表头的占位符。LIST_HEAD(list_name)宏还初始化 list head数据结构的 prev和next 字段,让它们指向list_name 变量本身。代码如下

#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) \struct list_head name = LIST_HEAD_INIT(name)

下面列出了常见的链表操作,结合上图中的(a)分析下面的操作:

list_add(n,p)
把 n指向的元素插入 P 所指向的特定元素之后 (为了把n插人在链表的开始, set p to the address of the list head.)
list_add_tail(n,p)
把 n 指向的元素插到 P 所指向的特定元素之前 (为了把n 插入在链表的尾部,set p to the address of the list head)
list_del(p)
删除 P 所指向的元素 ( 没有必要指定链表的第一个元素)
list_empty(p)
Checks if the list is empty.
list entry(p,t,m)
Retur


http://www.ppmy.cn/devtools/45496.html

相关文章

Flutter 验证码输入框

前言: 验证码输入框很常见:处理不好 bug也会比较多 想实现方法很多,这里列举一种完美方式,完美兼容 软键盘粘贴方式 效果如下: 之前使用 uniapp 的方式实现过一次 两种方式(原理相同)&#xff1…

LeetCode 第400场周赛个人题解

100307. 候诊室中的最少椅子数 原题链接 100307. 候诊室中的最少椅子数 思路分析 直接模拟 时间复杂度:O(n) AC代码 class Solution:def minimumChairs(self, s: str) -> int:cur res 0for x in s:if x E:cur 1else:cur - 1res max(res, cur)return …

Docker 私有仓库部署和管理

目录 一、案例一 概述 二、案例一 前置知识点 2.1、什么是 Docker Compose 2.2、什么是 Consul 三、案例一 使用 docker Compose 搭建 Consul 集群环境 3.1、案例实验环境 3.2、案例需求 四、案例实施 4.1、Docker 网络通信 1)端口映射 2&#xf…

Idea java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space 解决

咱们平时的开发过程中一定会进行本地调试,今天我也是安装了新的idea之后拉了一个比较大的项目进行本地调试的时候报错。报错信息如下: java: java.lang.OutOfMemoryError: Java heap space java.lang.RuntimeException: java.lang.OutOfMemoryError: Ja…

C语言怎样写数据⽂件,使之可以在不同字⼤⼩、 字节顺序或浮点格式的机器上读⼊?

一、问题 怎样写数据⽂件,使之可以在不同字⼤⼩、字节顺序或浮点格式的机器上读⼊,也就是说怎样写⼀个可移植性好的数据⽂件? 二、解答 最好的移植⽅法是使⽤⽂本⽂件,它的每⼀字节放⼀个 ASCII 代码,代表⼀个字符。 …

python 滑雪小游戏代码

以下是一个简化的滑雪小游戏代码示例,使用了Pygame库来创建窗口和处理用户输入 import pygame import random # 初始化Pygame pygame.init() # 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) # 设置背景颜色 bg…

面试官:Spring中都应用了哪些设计模式?

设计模式是我们项目中经常会涉及到的项目进行重构、解构时的一种方法。 比如我们常见的单例模式、工厂模式、策略模式、装饰器模式等都是比较常用的;关于 23 种设计模式,大家可以找本书专门去学习一下,在 Java 框架的源码中也不例外&#xf…

【设计模式】JAVA Design Patterns——Data Access Object(数据访问对象模式)

🔍目的 对象为某种类型的数据库或其他持久性机制提供了抽象接口。 🔍解释 真实世界例子 有一组客户数据需要持久化到数据库中。 我们需要整个额外的增删改查操作以便操作客户数据。 通俗描述 DAO是我们通过基本持久性机制提供的接口。 维基百科 在计算机…