1.【链表的插入】(后插)
在n个节点里插入m个节点,最后顺序输出。
#include<bits/stdc++.h>
using namespace std;
struct node {//创建链表结构体数组
int data;
int next;
} a[200010];
int main() {
int n,m,k,x;
cin>>n;
for(int i=1; i<=n; i++) {//循环输入n个节点
cin>>a[i].data;
a[i].next=i+1;
}
a[n].next=-1;
cin>>m;
int cnt=n+1;
for(int i=1; i<=m; i++) {//循环m次
cin>>k>>x;
a[cnt].data=x;//在k位置后插入节点x
a[cnt].next=a[k].next;
a[k].next=cnt++;
}
int head=1;
for(int i=head; i!=-1; i=a[i].next) {//遍历输出链表
cout<<a[i].data<<" ";
}
return 0;
}
1.【链表的插入】(前插)
#include<bits/stdc++.h>
using namespace std;
struct node {//创建链表结构体数组
int data;
int next;
} a[200010];
int main() {
int n,m,k,x;
cin>>n;
cin>>m;
for(int i=1; i<=m; i++) {//循环m次
cin>>k>>x;
int cnt=//现在存到了哪个下标
int head=-1;
a[cnt].data=x;
a[cnt].next=head;
head=cnt++;
}
int head=1;
for(int i=head; i!=-1; i=a[i].next) {//遍历输出链表
cout<<a[i].data<<" ";
}
return 0;
}
2【链表的删除】
在n个节点中删除结点为m的内容,最后再输出链表。
#include<bits/stdc++.h>
using namespace std;
struct node {//创建链表结构体数组
int data;
int next;
} a[200010];
int main() {
int n,m,k,x;
cin>>n;
for(int i=1; i<=n; i++) {//循环输入n个节点
cin>>a[i].data;
a[i].next=i+1;
}
a[n].next=-1;
cin>>m;
int head=1;
for(int i=head; i!=-1; i=a[i].next) {
if(a[i].data==m&&a[i].next!=-1){//判断数据域为m且指针域不为-1
a[i].next=a[a[i].next].next;//删除
}
cout<<a[i].data<<" ";
}
return 0;
}