【输入形式】
第一行输入整数n,表示顺序表中有n个元素;
第二行输入n个整数建立带头结点单链表;
第三行输入x,用于删除表中小于x的元素
【输出形式】
输出删除后的表内元素
【样例输入】
6
2 9 5 7 1 6
5
【样例输出】
9 5 7 6
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int ElemType;
typedef struct LNode{
ElemType data; /*结点的数据域*/
struct LNode *next;/*结点的指针域*/
}LNode,*LinkList;
LinkList CreateList_n( int n)
{
LinkList L,p,q;
L=p=(LinkList)malloc(sizeof(LNode));
ElemType e;
int i;
for(i=1;i<=n;i++)
//while(scanf("%d",&e)==1)
{
scanf("%d",&e);
q=(LinkList)malloc(sizeof(LNode));
q->data=e;
p->next=q;
p=q;
}
p->next=NULL;
return L;
}
void PrintList(LinkList L)
{
LinkList p=L->next;
while(p){
printf("%d ",p->data);
p=p->next;}
}
void DeleteListLessThanX(LinkList L,ElemType x)
{
LinkList p,q;
p=L;
q=L->next;
while(q){
if(q->data<x){
p->next=q->next;
free(q);q=q->next;
}
else{
p=p->next;
q=q->next;
}
}
}
int main()
{
int n,x;
LinkList L;
scanf("%d",&n);
L=CreateList_n(n);
getchar();
scanf("%d",&x);
DeleteListLessThanX(L,x);
PrintList(L);
return 0;
}