首页 > 其他分享 >第二章 线性表

第二章 线性表

时间:2023-09-18 18:23:29浏览次数:31  
标签:结点 线性表 next 链表 prior 前驱 第二章 指针

线性表

2.5.3 循环链表

最后一个结点的指针域指向头结点

终止条件:p != L && p -> next != L

循环链表的合并:设立尾指针。将第一个表的尾指针指向第二个表的第一个结点,第二个表的尾指针指向第一个表的头结点,然后释放第二个表的头结点。时间复杂度是O(1)

2.5.4 双向链表

克服了单链表单向性的缺点,即既可以查找直接后继,也可以查找直接前驱

一个双链表结点有两个指针域。

d -> next -> prior = d -> prior -> next = d

插入

在第i个位置之前插入元素e

先找到第i - 1个结点的指针域,生成新结点使之数据域赋为e,然后对第i - 1个和第i个结点的指针域赋值(注意赋值顺序),实现新元素的插入。

s = new DulNode;
s -> data = e;
s -> prior = p -> prior;
p -> prior -> next = s;
s -> next = p;
p -> prior = s;

> 第3 4和5 6行代码可以换顺序 但是不能把5 6放在3 4前面 因为5 6改变了p的前驱

删除

删除第i个结点

找到第i - 1个结点的指针域,分别修改被删结点的前驱结点的后继指针和其后继结点的前驱指针

p -> prior -> next = p -> next;
p -> next -> prior = p -> prior;
delete p;

标签:结点,线性表,next,链表,prior,前驱,第二章,指针
From: https://www.cnblogs.com/iszxh/p/17712750.html

相关文章

  • 王道数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先
    题目:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的排序方法是()A.先按k1进行直接插入排序,再按k2进行简单选择排序B.先按k2进行直接插入排序,再按k1进行简......
  • JS深入学习笔记 - 第二章.类和对象
    3.类和对象3.1面向对象这里顺带提一句学习JAVA时,老师说的面向对象和面向过程的区别:面向过程:强调做什么事情,具体什么步骤。举个把大象放进冰箱的例子:打开冰箱门把大象放进冰箱关上冰箱门面向对象:强调的是做动作的主体(称之为对象)冰箱:打开操作冰箱:放的操作(放的可以是大象......
  • 第二章注重实效的途径
     ......
  • MySQL篇:第二章_初识MySQL
    初始MySQLMySQL的背景1、前身属于瑞典的一家公司,MySQLAB2、08年被sun公司收购3、09年sun被oracle收购MySQL的优点1、开源、免费、成本低2、性能高、移植性也好3、体积小,便于安装数据库的好处​ 1、持久化数据到本地​ 2、可以实现结构化查询,方便管理​数据库相关概......
  • 线性表——链式存储
    单链表(有头结点)#include<stdlib.h>//定义typedefstructLNode{intdata;//数据域structLNode*next;//指针域指向下一个结点,所以是structLNode类型}LNode,*LinkList;//*LinkList用于表示这是一个指向structLNode类型的指针//初始......
  • ESP32(含ESP8266)实战问题第二章总结
    1. 一定要确保连接在同一个网络中,才可以通讯这是基础,两种方式都是需要这个基础的。如在esp8266作为服务端的时候可以先连接手机的热点之后,在调试软件中进行连接后数据传输。2. Serial.println()不会帮你修饰就发出去了,所以造成了你在写esp8266作为服务器的时候,服务端传输的数据用这......
  • C数据结构-线性表之顺序表
    什么是线性表线性表的插入元素线性表的删除元素线性表顺序存储的缺点线性表的特点1.线性表的实例首先我们创建3个文件,分别如下:liner_data--sqlist.c--sqlist.h--test.csqlist.h//.h文件中定位数据的结构以及函数的方法typedefintdata_t;#defineN128......
  • C++算法之旅、05 基础篇 | 第二章 数据结构
    常用代码模板2——数据结构-AcWing笔试用数组模拟而不是结构体使用结构体指针,newNode()非常慢,创建10万个节点就超时了,做笔试题不会用这种方式(优化是提前初始化好数组,但这样跟数组模拟没区别了,而且代码量很长)单链表(数组)使用两个数组,e存储val,ne存储next。空节点next用-1表......
  • 【高等数学】第二章 多元函数微分学
    1多元函数基本概念二元及二元以上的函数统称多元函数。1.1平面点集开区域:取不到边界值。闭区域:可以取到边界值。(任意一个边界可以取到即认为是闭区域)无界:某个方向无穷没有边界(任意一个边界无穷即代表无界)有界:任意一个方向有边界1.2二元函数其中,x/y为自变量;z为因变量。x,y的变化......
  • Docker:第二章:部署项目,对镜像,容器的操作
    服务器上的项目访问不了,所以我去看了看容器,果然那我就删除容器呗:docker rm容器iddockerrmf097e24a9a0f说明:从镜像到容器,同一个镜像构建多个运行的Docker实体——容器,镜像提供了容器运行时所需的程序、库、资源、配置等文件,还包含了一些为运行时准备的一些配置参数。镜......