游客 Signup | Login
中文 | En

2730 - 删除小于x的元素

设有一个正整数序列组成的有序单链表,现在输入一个x值,然后,删除单链表中小于x的值。

Input

第一行:输入一组整数。

第二行:输入x值。

Output

第一行,输出删除前的单链表。

第二行:输出删除后的单链表。

Examples

Input

1 2 3 4 5 6
3

Output

1 2 3 4 5 6
3 4 5 6

Solution C

#include <stdio.h>
#define MAX 100
#define size 6
typedef int elemtype;
typedef struct seqlist
{
	elemtype elem[MAX];
	int last;
}Seqlist;

int main()
{
	struct seqlist l;
	int i,x,k=0;
	l.last=size;
	for(i=0;i<l.last;i++)
		scanf("%d",&l.elem[i]);
	scanf("%d",&x);
	for(i=0;i<l.last;i++)
	{
		if(i==l.last-1)
			printf("%d\n",l.elem[i]);
		else
			printf("%d ",l.elem[i]);
	}
	for(i=0;i<l.last;i++)
	{
		if(l.elem[i]>=x)
		{
		if(i==l.last-1)
			printf("%d\n",l.elem[i]);
		else
			printf("%d ",l.elem[i]);
		}
	}
}

Solution C++

#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct Node
{
	ElemType data;
	struct Node * next;
}Node,*LinkList;

void CreateFromTail(LinkList L)
{
	int i;
	Node * s,*r;
	r=L;
	for(i=0;i<6;i++)
	{
	s=(Node *)malloc(sizeof(Node));
	scanf("%d",&s->data);
	s->next=r->next;
	r->next=s;
	r=s;
	}
	r->next=NULL;
}   
   
void Del(LinkList L,ElemType e)
{
	Node *s,*r;
	s=L;
	while(s->next!=NULL)
	{
	if(s->next->data<e)
	{
		r=s->next;
		s->next=s->next->next;
		free(r);
	}
		else
		s=s->next;
	}
	
}
void display(LinkList L)
{
	Node *c;
	c=L->next;
	while(c->next!=NULL)
	{
		printf("%d ",c->data);
		c=c->next;
	}
	printf("%d",c->data);
	printf("\n");
}

int main()
{
	LinkList L;
	int e;
	L=(Node *)malloc(sizeof(Node));
	L->next=NULL;
	CreateFromTail( L);
	scanf("%d",&e);
	display( L);
	Del( L, e);
 	display( L);
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题