我们这里的单链表定义为char型,其他类型是一样的做法


s->next=p->next;
s这个指针指向的节点就和p的下一个节点连接起来了。
p->next=s;
注意:这两个语句不能交换
然后p->next是一个指针 s也是一个指针
s是一个指向某一个节点的指针。
p->next=s;
代表p->next指向了s指向的节点。不代表p->next和s等价
当s指向其他区域后,p->next就和s指向的区域就不同了

为了实现删除操作
是将p->next=b->next(p->next->next);
此时p就不指向b了 b相当于在这个链表之外了
但是一般我们使用一个额外的q指针=p->next 即p=b 即p指向了b指向这块位置,注意此时的b并不是实际存在的而是p->next的方式存在的,我们使用q代表我们可以释放p->next这块区域的内存,而直接p->next=b->next我们就丢失了。

建表:头插法,尾插法

头插法逻辑位序和物理顺序是不一样的,是刚好相反的。
明确算法
L是头指针,指向头节点。
用对指针的引用,这样才能反馈给实际指针
首先我们应该分配头节点的空间,然后L即头节点的L->next指向NULL
进入一个循环,
首先为s指针分配一块空间,他是我们期望得到的类型的空间。
然后让s->data存储数据,再让s->next=L->next即让s->next指向空,然后让L->next指向s,注意L L->next s s->next都是指针
这其实是插入节点的操作,这样我们就得到了n个节点。形成了一个链表。

尾插法和头插法差不多,但是在算法(函数内)定义了两个指针
r指针和s指针
r指针等于L指向头节点
然后进入循环,首先还是为s指针赋予一片空间,此时这片空间就是节点,然后输入数据域,s->data=a[] 此时的a[i]是数据域,当然数据域也可以是其他任何东西。
然后r现在是头指针(L此时也是头指针)注意指针和内存的关系。
r->next即头节点的next指针,指向s,r->next=s;这是头节点连接到了下一个节点。
然后,r=s;此时r不再指向头节点,但是头节点依然存在,L指向着头节点,头节点没有丢失。
r=s的意义在于r和s此时指向的是同一个节点。
再次循环时,r相当于又一个头节点,s又被重新赋予一片空间(即节点),再次重复这个过程,但是这个过程是顺序的,他的物理位序和逻辑位序是一致的。

最后退出循环时,r->next指向NULL。

数据结构—链表-建立单链表相关推荐

  1. 数据结构上机-尾、头插法建立单链表-单链表遍历C语言完整代码实现

    点击此处跳转视频链接:数据结构上机-尾.头插法建立单链表-单链表遍历C语言完整代码实现

  2. 数据结构上机实践第四周项目1 - 建立单链表

    [项目1 - 建立单链表] 本次项目的目标是定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果. 测试主函数及函数声明源代码如下: //*Copyright (c)2017,烟台大 ...

  3. 数据结构__头插法建立单链表、尾插法建立单链表

    单链表定义.头插法建表.尾插法建表 一.单链表的定义   单链表是线性表的链式存储,是指通过一组任意的存储单元来存储线性表中的数据元素. 单链表结构定义为: 其中data为数据域,用来存放数据:nex ...

  4. 头插法建立单链表c语言6,2020-07-14(C语言)数据结构采用头插法建立单链表

    //采用头插法建立单链表 include include typedef struct LNode { int data; struct LNode *next; } LNode, *LinkList ...

  5. 数据结构——链表(定义详解及建立单链表与实现其操作)

    链表定义:链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括 ...

  6. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...

    最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...

  7. python数据结构基础(单链表,多链表,二叉树)

    python数据结构基础(单链表,多链表,二叉树) 数据结构指数据对象中数据元素之间的关系 Python 给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做 ...

  8. 2023王道考研数据结构第二章---单链表

    2.3 单链表 2.3.1 单链表的定义 什么是单链表? typedef关键字:数据类型重命名 typedef <数据类型> <别名> 如: typedef int zheng ...

  9. 【数据结构与算法】 01 链表 (单链表、双向链表、循环链表、块状链表、头结点、链表反转与排序、约瑟夫环问题)

    一.线性表 1.1 概念与特点 1.2 线性表的存储结构 1.3 常见操作 1.4 应用场景 二.链表 2.1 链表简介 2.2 单向链表(单链表) 2.21 基本概念 2.22 单链表基本操作 2. ...

最新文章

  1. GC.Collect如何影响垃圾回收
  2. python 端口扫描
  3. hdu1196 Lowest Bit
  4. oracle 索引 效果,Oracle中不使用索引和使用索引的效果比较分析
  5. 【ArcGIS|空间分析|网络分析】9 使用位置分配选择最佳商店位置
  6. OBS直播影视使用虚拟声卡
  7. 数据结构期末考试试题及答案
  8. ssm企业人事管理系统人事管理系统(企业人事管理系统)企业人事人力资源管理系统
  9. 世界时钟-国家中英文名称-国家代码-与北京的时差 一览
  10. Python 汉字转拼音的库--- PyPinyin
  11. freyja将重新把重心放在orm、sharding、cache上
  12. Emacs 新闻组 之四 联系人管理
  13. iPad的屏幕大小是多少?
  14. 只能用GUEST用户访问共享的解决办法
  15. java面试考点精讲视频教程!
  16. 关于GDPR,你需要了解的的5件事
  17. 19.jvm内存结构部分——堆_内存诊断_jmap
  18. mysql COMMENT字段注释,表注释使用(转)
  19. C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值
  20. RK3568-SPI

热门文章

  1. Windows-Server下加强系统安全性系列之方案【六】
  2. Linux操作系统的8个经典技巧
  3. thinkphp数据库连接池_Thinkphp5框架下的数据库连接
  4. 软件测试工程师-计算机基础
  5. helm使用_通过图表提升您在Kubernetes上使用Helm的能力
  6. 节日礼物指南:清单上适合学习者,探索者或修补匠的书籍
  7. wpf开源ui引用步骤_吸引开源社区的5个步骤
  8. ldap 管理_彻底改变内容管理,财务,LDAP等
  9. (19)脚手架工具Yeoman
  10. CSS 设置表格格式