数据结构--双链表

news/2024/9/21 8:38:30

双链表

/*L x,表示在链表的最左端插入数 x。
R x,表示在链表的最右端插入数 x。
D k,表示将第 k 个插入的数删除。
IL k x,表示在第 k 个插入的数左侧插入一个数。
IR k x,表示在第 k 个插入的数右侧插入一个数。*/
#include<iostream>
using namespace std;
const int N=1e5+10;
int l[N],r[N],index,value[N];
void ini()
{//一开始左边界节点指向右边界节点,右边界节点指向左边界节点r[0]=1;l[1]=0;//更新节点索引index=2;
}void insert(int k,int x)//在第k个节点后插入x
{//将值赋给新节点value[index]=x;//将新节点分别指向插入位置的右节点和左节点r[index]=r[k];l[index]=k;//将新节点右边一节点向左指向新节点,将新节点左边一节点向右指向新节点l[r[k]]=index;r[k]=index;//更新节点索引index++;
}
void remove(int k)
{//删除第k个节点,第k-1的右指针指向原先第k个节点的右指针指向的节点r[l[k]]=r[k];//删除第k个节点,原先第k个节点的右指针指向的节点的左指针指向原先第k个节点的左指针指向//的节点l[r[k]]=l[k];
}
int main()
{// 0 是左边界  1是右边界//因为0和1都被占用,所以第1个节点也就是2=1+1 ,第2个节点为3=2+1;//∴第k个节点也就是k+1ini();int M,k,x;string operation;cin>>M;//操作个数while(M--){cin>>operation;//操作指令if(operation=="L")//在链表的最左端插入x{//也就是在左边界后插入一个节点,就是最左端插入一个节点cin>>x;insert(0,x);}else if(operation=="R")//在链表的最右端插入x{//也就是右边界的左节点后插入一个新节点cin>>x;insert(l[1],x);}else if(operation=="D")//把第k个插入的数删除{cin>>k;remove(k+1);}else if(operation=="IL")//第k个插入的数左侧插入一个数{//也就是在第k个插入的数的左节点后插入一个数cin>>k>>x;insert(l[k+1],x);}else//第k个插入的数右侧插入一个数{//在第k个节点后插入一个数cin>>k>>x;insert(k+1,x);}}int pos=r[0];while(pos!=1)//当指向右边界节点时,循环结束{cout<<value[pos]<<" ";pos=r[pos];}return 0;
}

一种更复杂的链表是“双向链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。
在这里插入图片描述

指定位置插入节点
在这里插入图片描述
删除元素

在这里插入图片描述

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

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

相关文章

数据结构--栈

文章目录栈基本操作栈 栈是限定仅在表尾进行插入或者删除的线性表。对于栈来说&#xff0c;表尾端称为栈顶&#xff0c;表头端称为栈低。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除&#xff0c;所以栈又被称为后进先出的线性表 基本操作 栈的初始化 判断是否…

使用Python,OpenCV执行视觉显著性检测(Visual Saliency Detection)

使用Python,OpenCV执行视觉显著性检测(Visual Saliency Detection) 这篇博客将介绍如何使用Python,OpenCV执行显著性检测,这是一个应用图像处理和计算机视觉算法来自动定位图像中最“显著”区域的过程。 通常显著性检测器分为三类算法: 静态显著性运动显著性对象显著性O…

5. 使用PyTorch预先训练的模型执行目标检测

5. 使用PyTorch预先训练的网络执行目标检测 PyTorch是什么&#xff1f;使用PyTorch训练第一个神经网络使用PyTorch训练第一个卷积神经网络使用预训练网络进行PyTorch图像分类使用预训练网络进行PyTorch目标检测&#xff08;今天的博客&#xff09; 这篇博客将介绍如何使用PyT…

机器学习二

文章目录线性回归线性回归 # -*- coding utf-8 -*- # Author : 墙缝里的草 # File : demo1004.py # Software : PyCharmimport numpy as np import random # 线性回归 的函数构造input_data 训练数据集 realresult 训练结果集 theta 参数# 线性回归函数 def _init_(self…

与ObjectDataSource共舞

4&#xff0c;ORM组件XCode&#xff08;与ObjectDataSource共舞&#xff09; XCode为了能更方便的解决大部分问题&#xff0c;不得不“屈身”于ObjectDataSource。 先上一个经典例子&#xff08;ObjectDataSourceGridView&#xff09;&#xff08;ObjectDataSource&#xff09;…

size mismatch for roi_heads.box_predictor.cls_score.weight: copying a param with shape torch.Size([9

1. 报错 RuntimeError: Error(s) in loading state_dict for FasterRCNN: size mismatch for roi_heads.box_predictor.cls_score.weight: copying a param with shape torch.Size([91, 1024]) from checkpoint, the shape in current model is torch.Size([80, 1024]). pytor…

数据结构--队列

文章目录队列队列存储结构特点队列的相关概念&#xff1a;队列的操作&#xff1a;队列的分类&#xff1a;数组实现链表实现队列 队列存储结构特点 &#xff08;1&#xff09;队列中的数据元素遵循“先进先出”的原则 &#xff08;2&#xff09;在队尾添加元素&#xff0c;在队…

文件服务器共享目录设置(二)

三、 设置磁盘配额及文件屏蔽 为了防止用户无限制的上传文件&#xff0c;或上传病毒木马等文件&#xff0c;还需要进一步加强安全设置。用磁盘配额来管理用户的文件夹空间&#xff0c;用文件屏蔽来阻止用户上传有风险的文件。 在win2003中&#xff0c;磁盘配额只能…