郑州人才网站,房地产设计部岗位职责,企业网站建设计划表,长沙网站列表题目描述 输入n个整数#xff0c;先按照数据输入的顺序建立一个带头结点的单链表#xff0c;再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。输入 第一行输入数据个数n#xff1b;第二行依次输入n个整数#xff1b;第三… 题目描述
输入n个整数先按照数据输入的顺序建立一个带头结点的单链表再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。输入
第一行输入数据个数n 第二行依次输入n个整数 第三行输入欲删除数据m。输出
第一行输出原始单链表的长度 第二行依次输出原始单链表的数据 第三行输出完成删除后的单链表长度 第四行依次输出完成删除后的单链表数据。示例输入 10
56 25 12 33 66 54 7 12 33 12
12 示例输出 10
56 25 12 33 66 54 7 12 33 12
7
56 25 33 66 54 7 33 #include iostream
#includebits/stdc.h
using namespace std;
struct node
{int data;node *next;
};
int m;
struct node *create(int n)
{int i;node *tail,*head,*p;headnew node;head-nextNULL;tailhead;for(i0;in;i){pnew node;scanf(%d,p-data);tail-nextp;tailp;}return (head);
};
void print(struct node *p)
{struct node *hp-next;while(h!NULL){if(h-nextNULL)printf(%d,h-data);elseprintf(%d ,h-data);hh-next;}
}
void num(node *head)
{int i0;node *phead-next;while(p){i;pp-next;}printf(%d\n,i);
}
void del(node *p)
{node *h;hp;node *q;while(h-next){if(h-next-datam)//删除指定元素{qh-next;h-nextq-next;free(q);}elsehh-next;}
}
int main()
{int n;scanf(%d,n);node *pcreate(n);scanf(%d,m);num(p);print(p);printf(\n);del(p);num(p);print(p);return 0;
}