//模拟链表
#include<stdio.h>
int main()
{
int data[101],right[101];
int i,n,t,len;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&data[i]);
len=n;
right[0]=1;
for(i=1;i<=n;i++)
{
if(i!=n)
right[i]=i+1;
else
right[i]=-1;
}
len++;
scanf("%d",&data[len]);
t=0;
while(t!=-1)
{
if(data[right[t]]>data[len]){
right[len]=right[t];
right[t]=len;
break;
}
t=right[t];
}
t=right[0];
while(t!=-1)
{
printf("%d",data[t]);
t=right[t];
}
return 0;
}
//链表 数组模拟 花了一天
#include<stdio.h>
#include<iostream>
using namespace std;
const int maxn=1000+10;
int d[maxn],p[maxn];
int main()
{
int n,m;
cin>>n>>m;
p[0]=1;
for(int i=1;i<n;i++){
d[i]=i*2;
p[i]=i+1;
}
d[n]=n*2;
p[n]=-1;
for(int i=0;i<m;i++){
char ch;
int a,b;
cin>>ch>>a>>b;
int pa,pb;
for(int j=0;p[j]!=-1;)
{
if(d[p[j]]==a)
pa=j;
else if(d[p[j]]==b)
pb=j;
j=p[j];
}
if(ch=='A')
{
if(p[pa]=pb)
continue;
int ta=p[pa];
int tb=p[pb];
p[pa]=p[p[pa]];
p[pb]=ta;
p[ta]=tb;
}
else
{
int ta=p[pa];
int tb=p[p[pb]];
p[pa]=p[p[pa]];
p[p[pb]]=ta;
p[ta]=tb;
}
}
for(int i=0;i<n;i++)
{
cout<<p[i]<<endl;
}
for(int i=0;p[i]!=-1;i=p[i])
cout<<d[p[i]]<<' ';
return 0;
}
2.5--模拟链表
最新推荐文章于 2024-04-18 20:07:54 发布