上次咱们已经一起分享了线性表的顺序存储的基本创建以及一些运算方法的实现,那么这次咱们主要来研究线性表的链式存储,俗称单链表,咱们知道顺序表在建立的时候要注意需要建立一块连续的空间,所以需要使用数组在内存中开辟空间,但是有个问题,当数据很多时,就需要建立一大块连续的空间,内存中空间是有限的。建立连续的空间可能会影响到其他程序的使用,并且在运算当中,插入数据或者是删除数据会造成数据的成片移动,回消耗大量的时间,单链表就会很好的解决这个问题。

将线性表L=(a0,a1,……,an-1)中各元素分布在存储器的,不同存储块,称为结点,通过地址或指针建立它们之间的联系,所得到的存储结构为链表结构。表中元素ai的结点形式如图所示。

其中,结点的data域存放数据元素ai,而next域是一个指针,指向ai的直接后继ai+1所在的结点。于是,线性表L=( a0,a1,……,an-1)的结构如图所示。

(1)定义结点结构体 linklist_t

定义一个结构体,每一个结构体表示一个节点,节点里面包含要存储的数据以及指向下一个节点的指针。这样通过找寻下一个节点的地址来将数据联系在一起。

(2)创建一个链表 linklist_create( )

(3)头插法插入数据 linklist_head_insert( )

(4)打印数据 linklist_show( )

(5)判断链表是否为空 linklist_empty( )

(6)头删法删除数据 linklist_head_delete( )

定义一个指针,指向要删除的节点,主要是为了能够临时保存数据,然后进行指针指向的改变,最后释放指针,并将指针置为空。

(7)指定数据删除 list_delete_value( )

(8)尾插法插入数据 linklist_tail_insert( )

(9)按照顺序插入数据(自带排序功能) linklist_sort_insert( )

(10.1)按照指定位置插入 linklist_pos_insert( )

(10.2)将数据倒置 linklist_recover( )

例如将5 4 3 2 1排成1 2 3 4 5:

定义两个指针p、q,q指向被插入的数据,p指向q的下一个数据,当每次q插入时,p q往后移动

(11)更改数据 list_replace( )

(12)查找数据位置 list_search( )

(13)数据排列 list_merge( )

链表1数据1 2 5 7

链表2数据1 3 6 8

将其合成一个链表 1 1 2 3 5 6 7 8

创作不易,点赞+关注哦!!!

实验一 线性表的顺序存储与实现_数据结构篇之单链表的创建以及实现相关推荐

  1. 实验一 线性表的顺序存储与实现_程序员:数据结构与算法,线性表介绍

    线性表 线性表(list):零个或多个数据元素的有限序列. 举个例子:一个班的小朋友,一个跟着一个排队,当中的每个小朋友都知道他前面的是谁,后面的是谁,如同一根线把他们串联起来.就可以称之为线性表. ...

  2. 实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇

    线性表 这篇博客写的是线性表相关的内容,包括如下部分,先看下有木有期待 啥是线性表 线性表的顺序存储 线性表的基本运算在顺序表上的实现 线性表的链式存储 线性表的基本运算在单链表上的实现 循环链表与双 ...

  3. 实验报告微型计算机拆卸顺序表,实验一线性表的顺序存储结构实验报告页.doc...

    实验一线性表的顺序存储结构实验报告页.doc 1 攀 枝 花 学 院 实 验 报 告 实验课程 数据结构 实验项目线性表的顺序存储 实验日期 系 班级 姓名 学号 同组人 指导老师 成绩 实验目的1. ...

  4. 线性表 c++语言代码,线性表C++的两种实现(顺序表示、单链表)

    [C++] 纯文本查看 复制代码bool InitList(LinkList &L) { L = new LNode; if (L == NULL) return false; L->n ...

  5. 数据结构实验--基于线性表的图书信息管理系统

    本文是依据数据结构习题解析与实验指导(李冬梅)一书中的第一个实验–基于线性表的图书信息管理系统所写的. 之所以写这个,是因为这个实验不仅涉及到线性表的结构设计,还包括一些线性表的基本操作,个人认为,做 ...

  6. 数据结构和算法:(3)3.1线性表的顺序存储结构

    -----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...

  7. java实现线性表的顺序存储

    今天复习数据结构,按照疯狂java,自己敲了一遍线性表的顺序存储,为了下次看方便,在这里保留一份. package mysequence;import java.util.Arrays; /*** @ ...

  8. 实验一 线性表、堆栈和队列的操作与实现

    前言 记录实验,同时也是记录常见数据结构算法的实现. 广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 学院 计算机科学与网络工程学院 实验课程 数据结构实验 实验项目 实验一 ...

  9. C和C++线性表的顺序存储结构

    C和C++线性表的顺序存储结构 基本概念 设计与实现 优点和缺点 基本概念 设计与实现 插入元素算法 判断线性表是否合法 判断插入位置是否合法 把最后一个元素到插入位置的元素后移一个位置 将新元素插入 ...

最新文章

  1. tensorflow调试打印
  2. 《Java 进阶之路》 下--推荐书籍
  3. jquery实现的视差滚动教程(视差大背景效果)
  4. kubernetes之node 宕机,pod驱离问题解决
  5. css 定位以及文字超长省略
  6. jquery获取input值
  7. 安卓mysql修改_手动修改Android数据库数据
  8. 【毕设】ASP.net校友录毕业设计(源代码+论文+开题报告+答辩PPT)
  9. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
  10. 计算机基础教学模式,浅谈中技计算机基础教学模式
  11. 【Latex】Latex小白入门(4)——Latex中特殊符号的输入
  12. 红帽8LINUX命令行使用技巧
  13. python re库,Python中的Re库简要总结
  14. 中山大学生科院骆观正教授课题组诚聘博士后及副研究员
  15. 第一节 安卓自定义轮播图的制作
  16. 汉诺塔(河内塔)问题
  17. 上传文件计算机传输的,文件全能王怎么把文件传到电脑上 文件全能王文件上传到电脑教程...
  18. 理清JS中的深拷贝与浅拷贝
  19. c语言调用dll实例 结构体传参,Matlab调用Dll,对于自定义结构体数组如何传参? - 程序语言 - 小木虫 - 学术 科研 互动社区...
  20. java程序员22年终总结以及23年展望

热门文章

  1. git version是什么软件_Deepin 15.11 安装 ZoneMinder 视频监控软件
  2. h5优秀控件_H5前端学习的js插件大全,基本包含了大部分的前端最前沿的js插件和库。...
  3. JDK源码解析之 Java.lang.StringBuffer
  4. 02-go的IDE安装
  5. 洛谷P2016 战略游戏【树形dp】
  6. Android之仿网易V3.5新特性
  7. Linux中英文命令对应
  8. Linux常用命令——chattr、lsattr
  9. C# WinForm开发系列 - GDI+【转】
  10. 容器内应用日志收集方案