建立长度为n的单链表,n>0,删除单链表中等于给定值的元素。数据类型指定为整型。
·
输入格式:
第一行为链表长度n;
第二行为链表中的n个数据元素的值;
第三行为需要删除的元素值。
输出格式:
输出为删除后的链表中的所有数据元素的值。
输入样例:
4
45 12 34 8
34
输出样例:
45 12 8
#include <stdio.h>
#include <malloc.h>
typedef struct node
{
int date;
struct node *next;
}NODE;
NODE *create()
{
int a;
int n;
NODE *head;
NODE *p;
NODE *q;
head = (NODE*)malloc(sizeof(NODE));
q = head;
scanf("%d",&n);
if(n > 0)
{
while(n > 0)
{
scanf("%d",&a);
p = (NODE*)malloc(sizeof(NODE));
p -> date = a;
q -> next = p;
q = p;
n--;
}
}
q -> next = NULL;
return(head);
}
void delete1(NODE*head,int x)
{
NODE *p;
NODE *q;
q = head;
p = q -> next;
while((p != NULL) && (p -> date != x) )
{
q = p;
p = p -> next;
}
if(p != NULL)
{
q -> next = p -> next;
free(p);
}
}
int main()
{
int x;
NODE *a;
NODE *b;
a = create();
scanf("%5d",&x);
delete1(a,x);
b = a;
b = b->next;
while(b != NULL)
{
printf("%d ",b->date);
b = b->next;
}
printf("\n");
return 0;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)