数据结构(4) 链表(链式存储)

这篇具有很好参考价值的文章主要介绍了数据结构(4) 链表(链式存储)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

单链表

定义

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

顺序表优点:可随机存取,存储密度高,缺点:要求大片连续空间,改变容量不方便。
单链表优点:不要求大片连续空间,改变容量方便,缺点:不可随机存取,要耗费一定空间存放指针。

定义单链表的代码:
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
定义数据领和指针域

定义一个新节点
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

定义typedef关键字来缩短函数书写麻烦
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

所以综上定义单链表有两种方式
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
要表示一个单链表时,只需声明一个头指针L,指向单链表的第一个结点
LNode * L; //声明一个指向单链表第一个结点的指针,或者LinkList L;//声明一个指向单链表第一个结点的指针,后者代码可读性更强。

  • 强调这是一个单链表–使用 LinkList
  • 强调这是一个结点–使用LNode*
  • 二者本质相同,都用于定义一个类型为单链表的指针

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

初始化一个不带头节点的单链表:

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
初始化一个带头节点的单链表:
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

基本操作的实现

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

单链表的插入

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

按位序插入

带头结点插入
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

不带头结点插入
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

指定节点的前插
  • 法1:用已知头指针来遍历链表插入
    数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
  • 法2:用已知p节点后插入数据来转移数据(时间复杂度为O(1))

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

指定节点的后插

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

单链表的删除

  • 法1:用已知头指针来遍历链表删除
    数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
    数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门
  • 法2:用已知p节点删除数据(时间复杂度为O(1))(且p节点不能为最后一个节点)
    数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门

小结

数据结构(4) 链表(链式存储),数据结构,数据结构,链表,快速入门文章来源地址https://www.toymoban.com/news/detail-836335.html

到了这里,关于数据结构(4) 链表(链式存储)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构-二叉树的链式存储

    二叉树的存储结构有顺序结构和链式结构两种,顺序结构我已经在上篇进行了详细的讲解,地址:数据结构-二叉树的顺序存储与堆(堆排序),本篇我们就主要讲解二叉树的链式存储。 二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。

    2024年02月02日
    浏览(39)
  • 数据结构课设:图书信息管理--顺序存储和链式存储

    在本实验中,我选择了两种存储结构(顺序存储和链式存储)来对图书信息表的修改问题进行描述,即:3.基于顺序存储结构的图书信息表的修改问题描述 和 13.基于链式存储结构的图书信息表的修改问题描述。 3.基于顺序存储结构的图书信息表的修改问题描述 首先,定

    2024年02月08日
    浏览(35)
  • 数据结构——二叉树的创建与遍历(链式存储结构)

    二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。以下是对链式存

    2024年02月05日
    浏览(42)
  • 数据结构——二叉树的链式存储的实现

                             InitBiTree(BiTree T)——初始化二叉树。                         CreateBiTree(BiTree T)——先序遍历的顺序建立二叉链表。                         PreOrderTraverse(BiTree T)——先序遍历。                         

    2024年02月04日
    浏览(40)
  • 数据结构-线性表的链式存储(包含代码实现)

    链式存储结构 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻 线性表的链式存储结构又称为 非顺序映像 或 链式映像。 用一组 物理位置任意的存储单元 来存放线性表的数据元素 这组存储单元既可以是连续的,也可以是不连续的,甚至是零散

    2024年02月06日
    浏览(38)
  • C/C++数据结构---顺序表---链式存储结构1(不带头节点)

    个人主页: 仍有未知等待探索_小项目,数据结构,洛谷刷题-CSDN博客 专题分栏---数据结构: 数据结构_仍有未知等待探索的博客-CSDN博客 目录 一、引例 1.顺序存储结构 2.链式存储结构 二、链表的创建和初始化 1.链表创建的分析 1)头插法 过程: 代码的实现: 2)尾插法 过程

    2024年02月07日
    浏览(27)
  • C/C++数据结构---顺序表---链式存储结构2(不带头节点)

     个人主页:仍有未知等待探索_数据结构,小项目,洛谷刷题-CSDN博客 专题分栏:数据结构_仍有未知等待探索的博客-CSDN博客  前一篇链接:数据结构---顺序表---链式存储结构1(不带头节点)_仍有未知等待探索的博客-CSDN博客 目录 一、前言 二、链表的基本操作  1.增加数据(

    2024年02月07日
    浏览(36)
  • 【数据结构】线性表(顺序存储和链式存储)两种方法,细节满满,保你学会

    ⭐⭐⭐⭐⭐⭐ 🎊专栏【数据结构】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【勋章】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 ⭐⭐⭐⭐⭐⭐  目录 ⭐定义:  ⭐ 理解: ⭐存储方式 : ⭐顺序存储的优缺点: 优点: 缺点: ⭐链式存储的优

    2023年04月09日
    浏览(29)
  • 【玩转408数据结构】线性表——双链表、循环链表和静态链表(线性表的链式表示 下)

            在前面的学习中,我们已经了解到了链表(线性表的链式存储)的一些基本特点,并且深入的研究探讨了单链表的一些特性,我们知道,单链表在实现插入删除上,是要比顺序表方便的,但是,单链表中每个结点仅存在一个指针指向其后续结点,那么如果我们想要找

    2024年04月10日
    浏览(38)
  • 数据结构入门(C语言版)二叉树链式结构的实现

    简单回顾一下二叉树的 概念: ★ 空树 ★非空:根节点,根节点的左子树、根节点的右子树组成的。 从概念中可以看出,二叉树定义是递归式的,因此后序基本操作中基本都是按照该概念实现的。 下面我们先看二叉树的结构体定义以及创建 首先结构体的定义是元素本身,以

    2023年04月23日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包