个人网站域名取名chenqinghua wordpress
news/
2025/10/4 12:37:22/
文章来源:
个人网站域名取名,chenqinghua wordpress,太原企业建站系统,网站模块制作题目描述: 小红拿到了一个数组#xff0c;初始数组为空#xff0c;她希望你实现以下两种操作#xff1a; 1. 输入x,y#xff0c;将x插入在元素y的右边。保证此时数组中没有元素等于x#xff0c;且数组中存在一个y。特殊的#xff0c;如果将x插入在数组的最左边#xff0…题目描述: 小红拿到了一个数组初始数组为空她希望你实现以下两种操作 1. 输入x,y将x插入在元素y的右边。保证此时数组中没有元素等于x且数组中存在一个y。特殊的如果将x插入在数组的最左边则y0 2. 输入x将元素x删除。 请你在所有操作后输出整个数组。 先说一下结构体模拟链表的操作: 第一种操作:将某一个元素b删除 想一想,b的右边的左边等于b的左边,例如 a b c,让b的左边也就是a指向b的右的左边边也就是c,从表示为:a→c,同时第二行,让b的右边也就是c指向b的左边的右边也就是a,表示为c→a,这样就把a和c连在了一起,相当于把b给删除了 局部代码如下: lst[lst[b].r].l lst[b].l;lst[lst[b].l].r lst[b].r;第二种操作:把一个元素插在另一个元素的后面这里拿出一个把y插在x后面举例子:我们这里要实现x→y,首先,引入一个中间量temp作为桥梁 让temp先在x的右边,就是相当于把temp放在了中间,然后二三步实现xy的互相指向,让temp再指向y的右边,实现一个从头到尾的遍历 局部代码如下: temp lst[x].r;lst[x].r y;lst[y].l x;lst[y].r temp;lst[temp].l y;遍历/存放链表: 一个temp指针一直往右指,直到指到头为止 temp lst[0].r;L sum 1;while (temp ! 0x3f){ans[sum] temp;temp lst[temp].r;}本题代码如下
#includeiostream
#includealgorithm
#includecstring
#includemap
typedef long long L;
using namespace std;
int n;
L temp 0x3f;
struct Node {L l, r;
};
L ans[2000005];
//存答案
mapL, Nodelst;
//结构体模拟链表
int main()
{lst[0].r 0x3f;//定义链表的初始lst[0x3f].l 0;//初始化链表cin n;while (n--){int a, b, c;cin a;if (a 1)//插入{cin b c;templst[c].r;lst[c].r b;lst[b].l c;lst[b].r temp;lst[temp].l b;}else//删除{cin b;lst[lst[b].r].l lst[b].l;lst[lst[b].l].r lst[b].r;}}//模拟输出链表temp lst[0].r;L sum 1;while (temp ! 0x3f){ans[sum] temp;temp lst[temp].r;}cout sum - 1endl;for (int i 1; i sum - 1; i){cout ans[i] ;}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927134.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!