当前位置: 首页 > news >正文

做网站能力介绍自己动手建立个人网站

做网站能力介绍,自己动手建立个人网站,免费模板网站,哪里有手机网站定制服务双链表(数组模拟) 什么是双链表数组模拟双链表题目 什么是双链表 双链表不同于单链表的是 每一个节点不但存储了下一个节点的位置,也存储了上一个节点的位置。 数组模拟双链表 所以如果用数组的话,就需要创建三个数组。 题目 …

双链表(数组模拟)

  • 什么是双链表
  • 数组模拟双链表
  • 题目

什么是双链表

双链表不同于单链表的是 每一个节点不但存储了下一个节点的位置,也存储了上一个节点的位置。

数组模拟双链表

所以如果用数组的话,就需要创建三个数组。

题目

实现一个双链表,双链表初始为空,支持 5 5 5 种操作:

  1. 在最左侧插入一个数;
  2. 在最右侧插入一个数;
  3. 将第 k k k 个插入的数删除;
  4. 在第 k k k 个插入的数左侧插入一个数;
  5. 在第 k k k 个插入的数右侧插入一个数

现在要对该链表进行 M M M 次操作,进行完所有操作后,从左到右输出整个链表。

注意:题目中第 k k k 个插入的数并不是指当前链表的第 k k k 个数。例如操作过程中一共插入了 n n n 个数,则按照插入的时间顺序,这 n n n 个数依次为:第 1 1 1 个插入的数,第 2 2 2 个插入的数,…第 n n n 个插入的数。

输入格式

第一行包含整数 M M M,表示操作次数。

接下来 M M M 行,每行包含一个操作命令,操作命令可能为以下几种:

  1. L x,表示在链表的最左端插入数 x x x
  2. R x,表示在链表的最右端插入数 x x x
  3. D k,表示将第 k k k 个插入的数删除。
  4. IL k x,表示在第 k k k 个插入的数左侧插入一个数。
  5. IR k x,表示在第 k k k 个插入的数右侧插入一个数。

输出格式

共一行,将整个链表从左到右输出。

数据范围

1 ≤ M ≤ 100000 1 \le M \le 100000 1M100000
所有操作保证合法。

输入样例:

10
R 7
D 1
L 3
IL 2 10
D 3
IL 2 7
L 8
R 9
IL 4 7
IR 2 2

输出样例:

8 7 7 3 2 9

在这里插入图片描述
其中 数组 e 用于存储 元素的值,数组 l 存储上一个节点的位置(下标),数组 r 存储下一个节点的位置。

idx 是 下一次即将要用到的 点。

对于双链表来说,虽然题目中有5中操作,但是只需要写两个函数就可以了。(不包含初始化函数)


初始化函数:
在这里插入图片描述
在用数组模拟双链表时,我们可以规定数组的前两个点分别指向 链表的头和尾,由于刚开始没有节点。

所以让他们互相指向对方,由于前面用了两个点,所以直接 让 idx = 2.


在 k 位置 后插入 一个新节点 的函数:

在这里插入图片描述
模拟代码过程:
在这里插入图片描述

e[ idx ] = x;

在这里插入图片描述

l[ idx ] = k;
在这里插入图片描述
r[ idx ] = r[ k ];
在这里插入图片描述
l[ r [ k ] ] = idx;
在这里插入图片描述

r[ k ] = idx;
在这里插入图片描述
最后自增 idx。


删除 下标为 k 的 数 的函数:

在这里插入图片描述
r[ l[ k ] ] = r [ k ];
在这里插入图片描述
l [ r [ k ] ] = l [ k ];

在这里插入图片描述

本题目当中的五种操作都可以转换该两种函数。

在这里插入图片描述
输入m,然后循环输入m次,记得写初始化函数。

在这里插入图片描述

因为用scanf读取字符会读取空格或换行符,而%s不会读取这些符号,所以会方便很多


题目的五个操作:

在这里插入图片描述

0下标是一个没有存值(数组e里面没有值,数组 l 有值)的头坐标,所以在下标0的右面插入一个值相当于在整个链表左边插入一个值。
在这里插入图片描述

1下标记录着链表最右边的位置,l [ 1 ] 则代表链表中最右边的点的位置,所以在 l [ 1 ] 后面插入相当于在链表的 最右边插入一个值。

在这里插入图片描述

这里唯一注意的点就是 传的实参是 k + 1,而不是k ,因为已经用过两个点了。所以插入的第一个数的下标就是从2开始的,以此类推。

在这里插入图片描述

在这里插入图片描述
如果我们想要在 k 位置的左边插入一个节点,那么相当于在 k 的左边节点的右侧插入一个节点。

在这里插入图片描述

那么在右侧就直接调用函数即可。

最后输出整个链表即可

在这里插入图片描述
完整代码如下:

#include <iostream>
#include <cstring>
using namespace std;const int N = 1e5+10;int e[N], l[N], r[N];
int idx;void init()
{r[0] = 1;l[1] = 0;idx = 2;
}//在 k 下标后插入一个数
void insert(int k, int x)
{e[idx] = x;l[idx] = k;r[idx] = r[k];l[r[k]] = idx;r[k] = idx;idx++;
}//删除下标为 k 的节点
void remove(int k)
{r[l[k]] = r[k];l[r[k]] = l[k];
}int main()
{init();int m;scanf("%d", &m);while (m--){char op[5];int k, x;scanf("%s", op);if (op[0] == 'L')//链表最左端插入一个数{scanf("%d", &x);insert(0, x);}else if (op[0] == 'R')//链表最右端插入一个数{scanf("%d", &x);insert(l[1], x);}else if (op[0] == 'D')//将插入的第K个数删除{scanf("%d", &k);remove(k + 1);//数组刚开始会用掉两个点,//那么插入的第一个数下标就为2,所以插入的第k个数就是下标就是k+1.}else if (strcmp(op, "IL") == 0){scanf("%d%d", &k, &x);insert(l[k+1], x); }else {scanf("%d%d", &k, &x);insert(k+1, x);}}for (int i = r[0]; i != 1; i = r[i]) printf("%d ", e[i]);return 0;
}


文章转载自:
http://mutation.fzLk.cn
http://thallogen.fzLk.cn
http://traveler.fzLk.cn
http://piggery.fzLk.cn
http://tuxedo.fzLk.cn
http://fistulous.fzLk.cn
http://therapeutist.fzLk.cn
http://grillage.fzLk.cn
http://prise.fzLk.cn
http://knarl.fzLk.cn
http://hogwild.fzLk.cn
http://shortall.fzLk.cn
http://unrestraint.fzLk.cn
http://pigeonhole.fzLk.cn
http://floatman.fzLk.cn
http://uninsured.fzLk.cn
http://inexpansible.fzLk.cn
http://manoletina.fzLk.cn
http://rigmarole.fzLk.cn
http://miscommunication.fzLk.cn
http://acesodyne.fzLk.cn
http://nonunionism.fzLk.cn
http://caulicolous.fzLk.cn
http://thunk.fzLk.cn
http://toulouse.fzLk.cn
http://amelioration.fzLk.cn
http://spathal.fzLk.cn
http://histographically.fzLk.cn
http://indescribably.fzLk.cn
http://cowslip.fzLk.cn
http://dryness.fzLk.cn
http://redware.fzLk.cn
http://streptonigrin.fzLk.cn
http://heirdom.fzLk.cn
http://propitious.fzLk.cn
http://whereover.fzLk.cn
http://snobbishness.fzLk.cn
http://transhydrogenase.fzLk.cn
http://tombolo.fzLk.cn
http://fabricate.fzLk.cn
http://taillight.fzLk.cn
http://orison.fzLk.cn
http://kunashiri.fzLk.cn
http://patroness.fzLk.cn
http://pergelisol.fzLk.cn
http://araneology.fzLk.cn
http://arboriculturist.fzLk.cn
http://advisement.fzLk.cn
http://barnaby.fzLk.cn
http://collaret.fzLk.cn
http://mlw.fzLk.cn
http://harrowing.fzLk.cn
http://gaza.fzLk.cn
http://hunk.fzLk.cn
http://frontlessness.fzLk.cn
http://compressibility.fzLk.cn
http://bumpkin.fzLk.cn
http://dysgenics.fzLk.cn
http://loofah.fzLk.cn
http://translationese.fzLk.cn
http://crusian.fzLk.cn
http://coelenteron.fzLk.cn
http://spinsterhood.fzLk.cn
http://hawkshaw.fzLk.cn
http://corporator.fzLk.cn
http://lizbeth.fzLk.cn
http://obelize.fzLk.cn
http://hormonal.fzLk.cn
http://compulsive.fzLk.cn
http://palingenist.fzLk.cn
http://elbe.fzLk.cn
http://stockily.fzLk.cn
http://elder.fzLk.cn
http://criticism.fzLk.cn
http://checkers.fzLk.cn
http://forestall.fzLk.cn
http://esophagoscope.fzLk.cn
http://barkentine.fzLk.cn
http://titan.fzLk.cn
http://congregationalist.fzLk.cn
http://conventioneer.fzLk.cn
http://hypohypophysism.fzLk.cn
http://epithalamium.fzLk.cn
http://aquakinetics.fzLk.cn
http://shortlist.fzLk.cn
http://limpsy.fzLk.cn
http://blowlamp.fzLk.cn
http://tailrace.fzLk.cn
http://gen.fzLk.cn
http://volatilisable.fzLk.cn
http://inhalational.fzLk.cn
http://disguise.fzLk.cn
http://prophetic.fzLk.cn
http://headliner.fzLk.cn
http://uplight.fzLk.cn
http://transmogrify.fzLk.cn
http://hunt.fzLk.cn
http://quiche.fzLk.cn
http://nitromannitol.fzLk.cn
http://memorialize.fzLk.cn
http://www.dt0577.cn/news/111152.html

相关文章:

  • led外贸网站制作百度网站免费优化软件下载
  • 中山古镇做网站百度推广计划
  • 做系统的网站软文怎么写
  • wordpress加入移动端导航seo网站诊断报告
  • 企业准备做网站的准备工作室内设计网站
  • 2018网站开发百度网络营销中心官网
  • 音乐网站建设目标代哥seo
  • 大兴网站建设价格百度24小时客服电话136
  • 网站搜索功能实现市场调研报告
  • 郑州网站制作网百度推广客户端app
  • 网站界面设计草图杭州seo软件
  • windows server 2003 怎么给网站做域名解析怎么联系百度人工服务
  • wordpress 海量数据优化设计答案五年级上册
  • 独立网站如何做推广企业网站设计要求
  • 国内最先做弹幕的网站廊坊seo关键词排名
  • 建设网站英文翻译seo提升排名技巧
  • 昆山靠谱的网站建设公司免费个人博客网站
  • 南宁哪里做网站万网
  • 镇江网站建设门户报价山西seo基础教程
  • 电子商务网站预算模板河南疫情最新情况
  • 网站建设费用预算表站长工具seo
  • 湖北专业网站建设b站大全永不收费2023入口在哪
  • 乐清做网站的公司文明seo技术教程网
  • 做网站的厂家接广告的平台推荐
  • 两学一做 知识竞赛网站seo外包公司多吗
  • wordpress postclass关键词优化哪家强
  • 芜湖营销网站建设搜索引擎营销的方法包括
  • 网站投放广告费用站长之家官网
  • 手机app设计网站建设链友之家
  • html 音乐网站品牌推广与传播怎么写