zoukankan      html  css  js  c++  java
  • 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. 尽量保持每个指针的数据尽可能完整。
  • 相关阅读:
    new
    如何在win7上面安装python的包
    进程
    网络编程模块的使用
    面向对象基础与实例
    类与对象的属性与使用方法
    基础面向对象与面向过程
    RE模块垃圾回收机制
    常用函数模块
    thinkphp6 find_in_set使用实例
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/14522369.html
Copyright © 2011-2022 走看看