Title

PTA可怕的素质(链表)

PTA可怕的素质(单向链表法)

可怕的素质

亚克星球上的人的素质跟我们福大人比起来,可以说是一个天上,一个地下了。他们去食堂吃饭的时候,很多人都不好好的排队,而是排在某个熟人的后面,或者直接就插到队伍的最前面。这让食堂的工作人员很是恼火。

输入格式:

第一行包含一个整数n(0<n<1000),表示有n个亚克星球上的人去食堂吃饭。

接下来n行,每行1个整数x,表示第i( i从1~n )个人排在了x的后面,当x为0时,表示第i个人排在了最前面。

输出格式:

输出仅一行,包括n个数,以空格作为分隔符,最后一个数的后面没有空格。表示这n个人最后是排成了怎样的队伍。

输入样例:

3
0
0
2

输出样例:

2 3 1

代码

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct node)
using namespace std;
struct node{
	int val;
	node* next;
};
int main()
{
	int pos;
	int n;
	cin>>n;
	struct node *head,*p1;
	for(int i=1;i<=n;i++)
	{
		cin>>pos;
		p1=(struct node *)malloc(LEN);
		p1->val=i;
		p1->next=NULL;
		if(i==1)
		{
			head=p1;
		}
		else if(pos==0)
		{
			p1->next=head;
			head=p1;
		}
		else
		{
			struct node* cur=head;
			while(cur->val!=pos)
			{
				cur=cur->next;
			}
			
			p1->next=cur->next;
			cur->next=p1;
		}
		
	}
	
	struct node* cur=head;
	while(cur!=NULL)
	{
		cout<<cur->val<<" "; 
		cur=cur->next;
	}
	
	return 0;
}

心得

  • 尝试写了一下链表,在写的过程不断报错
    1. 循环过程中,记得更新指针。
    2. 尽量保持每个指针的数据尽可能完整。
posted @ 2021-03-12 10:26  BeautifulWater  阅读(673)  评论(0编辑  收藏  举报