//模拟链表
//利用两个数组,一个存数据,一个存“地址”
//此处,right[t]存的为下标为t的元素的下一个元素的下标,最后一个下表的right[t]为0
#define MAXN 5
int main()
{
int data[MAXN];
int right[MAXN];//right[0]相当于独立表头
memset(right,0,sizeof(right));//初始化!!!
//Isert
int len=0;
for(int i=1;i<MAXN;i++){
scanf("%d",&data[++len]);
if(len==1){
right[0]=1;
continue;
}
int t=0;
while(right[t]!=0&&data[right[t]]<=data[len])
t=right[t];
right[len]=right[t];
right[t]=len;
}
//Delete
int number;
scanf("%d",&number);
int t=0;
while(right[t]!=0&&data[right[t]]!=number)
t=right[t];
right[t]=right[right[t]];
//Print
t=right[0];
while(t!=0){
printf("%d ",data[t]);
t=right[t];
}
return 0;
}
单链表——模拟链表
最新推荐文章于 2023-07-18 22:28:10 发布