4.3 线性表之链表

news2024/11/15 21:43:12

目录

链表的存储结构

链表的结构

链表的相关运算


链表的存储结构

将线性表L=(a0,a1,……,an-1)中各元素分布在存储器的不同存储块,称为结点,通过地址或指针建立元素之间的联系  

结点的data域存放数据元素ai,而next域是一个指针,指向ai的直接后继ai+1所在的结点。

结点类型描述:      

typedef   struct  node       {

  data_t   data;   //结点的数据域//            

  struct node *next;  //结点的后继指针域//        

}listnode, *linklist;                

若说明

       listnode A;

       linklist p = &A;

设p指向链表中结点ai

获取ai,写作:p->data;

而取ai+1,写作:p->next->data

若指针p的值为NULL,则它不指向任何结点, 此时取p->data或p->next是错误的。  

可调用C语言中malloc()函数向系统申请结点的存储空间

           linklist  p;

           p = (linklist)malloc(sizeof(listnode));

则创建一个类型为linklist的结点,且该结点的地址已存入指针变量p中:

链表的结构

链表的相关运算

 链表查找  

1)按序号查找:实现GetLinklist(h, i)运算。 算法思路:从链表的a0起,判断是否为第i结点,若是则返回该结点的指针,否则查找下一结点,依次类推。

2)按值查找(定位) :  即实现Locate(h, x)。 算法思路:从链表结点a0起,依次判断某结点是否等于x,若是,则返回该结点的地址,若不是,则查找下一结点a1,依次类推。若表中不存在x,则返回NULL。

链表的插入:即实现InsertLinklist(h, x, i,)。将x插入表中结点ai之前的情况。 算法思路:调用算法GetLinklist(h, i-1),获取结点ai-1的指针p(ai 之前驱),然后申请一个q结点,存入x,并将其插入p指向的结点之后。

 链表的删除:即实现DeleteLinklist(h, i), 算法对应的链表结构如图所示。 算法思路:同插入法,先调用函数GetLinklist(h, i-1),找到结点ai的前驱,然后将结点ai删除之。

 

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

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

相关文章

Android Framework开发的前景如何?

Android Framework是Android操作系统中的重要组成部分,它提供了一系列的API(应用程序接口)和服务,方便开发人员创建Android应用程序。随着Android设备的普及和移动互联网市场的快速发展,Android Framework开发有着广泛…

我怎样一步一步引导ChatGPT写完一篇本科毕业论文

先了解毕业论文相关专家 给ChatGPT指定一个角色 我给ChatGPT指定一个学术导师角色,好家伙,给我谦虚起来了 好,换个方式,他开始听话了 了解论文格式 计算机科学与技术专业论文一般有哪些部分组成 选题 了解方向 请先告诉我计算…

(一)空间数据的转换与处理——投影变换

空间数据的转换与处理——投影变换 原始数据往往由于在数据结构、数据组织、数据表达等方面与用户需求不一致而要进行转换与处理。本节主要介绍 ArGIS 中数据的投影变换内容。 目录 空间数据的转换与处理——投影变换 1.概述2.定义投影3.投影变换3.1栅格数据的投影变换3.2矢量…

私人图床 - 本地快速搭建简单的EasyImage图床并实现公网远程访问

文章目录 1.前言2. EasyImage网站搭建2.1. EasyImage下载和安装2.2. EasyImage网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar内网穿透本地设置 4. 公网访问测试5. 结语 1.前言 一个好的图床,是网站或者文章图片能稳定显示的关键&…

pytest分布式执行(pytest-xdist)

前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候, 我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务…

加密与解密

加密与解密 加密方式分类 加密方式主要分为两种 一种是对称加密一种是非对称加密 对称加密 对称和非对称两种方式主要说的是加密和解密两个过程。 如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这…

任务提醒工具:Gestimer for Mac

Gestimer for Mac是一款运行在mac平台上的任务提醒工具,可以帮助用户快速地创建提醒事项,提醒用户完成重要的任务。它采用了简单的手势操作,让用户可以更加快速地创建和管理提醒事项,提高了工作效率。 Gestimer是一款美丽的菜单栏…

Win10下Docker Desktop+k8s安装

一、安装docker 安装好了docker环境,必须是desktop 版本,本例子就是以docker decktop版本为基本讲解的 具体docker的安装方法如下 进入 https://www.docker.com/get-started 点击下载就是 双击“Docker Desktop Installer.exe”安装docker desktop&a…

什么是UN38.3/UN38.3/MSDS+货物运输鉴定报告是什么?怎么做?

一:什么是UN38.3? UN38.3是指在联合国针对危险品运输专门制定的《联合国危险物品运输试验和标准手册》的第3部分38.3款,简称UN38.3。 据国际航协《危险物品规则》的相关规定,对适用于包括但不限于单独或与设备一起运输的属可充电型锂电池的手…

JS逆向 -- 某房登录加密分析

一、输入账号密码,点击登录 账号:15836353612 密码:123456 二、F12打开开发者工具,抓包分析,j_password被加密了 三、全局搜索j_password,发现就一个JS文件 四、进入JS文件,局部搜索&#xff0…

励志长篇小说《周兴和》书连载之一地窖出生的孩子

第一章 苦 难 岁 月 人,离开母体一来到这个陌生的世界,或许由于胆怯,或许由于惶恐,或许由于焦虑,面对即将走过的人生,无一例外地都是嗷嗷大哭。人生美好,但人生无常。无论帝王或是庶民&#x…

使用chroot定制系统

假设下载的桌面系统为ubuntu.iso。 一、进入iso并安装软件包 首先创建一个目录,如my-ubuntu,然后将ubuntu.iso挂载到这个目录上,或者不用挂载,直接解压也行,总之要能进入到iso里面去: sudo mount -o loop…

2023年宜昌市中职组“网络安全”赛项竞赛任务书-2

2023年宜昌市中职组“网络安全”赛项 竞赛任务书-2 一、竞赛时间 总计:180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 Windows操作系统渗透测试 100分钟 700分 任务二 Linux操作系统渗透测试…

【三十天精通Vue 3】第三十天 Vue 3中的Nuxt.js框架详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录 引言一、Nuxt.js框架详解1.1 什么是Nuxt.js框架1.2 Nuxt.js的优点和特点1.3 Nuxt.js与Vue.js的关系二、Nuxt.js项目的搭建2.1 安…

【三维CAD软件】上海道宁为您带来国际一流的国产自主可控的三维CAD软件——天工CAD

天工CAD©融合了 新迪数字收购的 国际一流三维CAD软件技术和 十几年CAD软件研发积累 是一款国产自主可控的三维CAD软件 产品成熟度和技术能力比肩国际先进水平 满足工业企业研发设计需求 软件功能强大、运行稳定、 易学易用、兼容性强 可以显著提升产品设计质量和效…

k8s pv pvc的使用

k8s pv pvc的使用 安装nfs服务器 yum install rpcbind nfs-utils -y systemctl enable rpcbind systemctl enable nfs systemctl start rpcbind systemctl start nfsmkdir -p /root/data/sc-data [rootmaster sc-data]# cat /etc/exports /root/data/sc-data 192.168.1.0/24(…

搜索、添加、删除均为O(logn)的数据结构——跳表

文章目录 有序数组和链表的对比有序数组有序链表 跳表跳表的搜索跳表的插入跳表的删除 跳表完整Java实现代码(包含上面介绍的所有功能模块) 有序数组和链表的对比 有序数组 有序数组支持高效随机访问,可以使用二分查找使得查找的时间复杂度…

SEO外包是为了省钱还是为了更好的效果呢?我们的探讨!

SEO是指优化网站以获得更高的自然搜索引擎排名的一系列技术和方法,它可以提高网站的可见性、流量和收入。随着互联网的不断发展,越来越多的企业意识到了SEO的重要性,但是,由于技术难度和人力成本的限制,许多企业选择将…

TikTok选品思路你真的知道吗

TikTok是一款非常流行的短视频社交应用程序,用户群体广泛,主要集中在年轻人之间,越来越多跨境商家布局TikTok。那么在TikTok上进行选品时,要采用什么思路和方法才能让自己的产品比较出众吸睛并且让自己财源滚滚呢? 一、…

阿里云服务器镜像是什么?镜像系统怎么选择?

阿里云服务器镜像是云服务器的装机盘,镜像是为云服务器安装操作系统的。云服务器镜像系统怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心…