首页 > 代码库 > 数据结构之 线性表---单链表操作A (删除链表中的指定元素)
数据结构之 线性表---单链表操作A (删除链表中的指定元素)
数据结构上机测试2-1:单链表操作A
Time Limit: 1000MS Memory limit: 4096K
题目描述
输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。
输入
第一行输入数据个数n;
第二行依次输入n个整数;
第三行输入欲删除数据m。
第二行依次输入n个整数;
第三行输入欲删除数据m。
输出
第一行输出原始单链表的长度;
第二行依次输出原始单链表的数据;
第三行输出完成删除后的单链表长度;
第四行依次输出完成删除后的单链表数据。
第二行依次输出原始单链表的数据;
第三行输出完成删除后的单链表长度;
第四行依次输出完成删除后的单链表数据。
示例输入
1056 25 12 33 66 54 7 12 33 1212
示例输出
1056 25 12 33 66 54 7 12 33 12756 25 33 66 54 7 33
代码(比较挫~~~):
#include <iostream>#include <string>#include <cstdio>#include <string.h>#include <algorithm>#include <ctype.h>using namespace std;struct node{ int data; struct node *next;};struct node *creat(int n){ int i; struct node *head, *tail, *p; head=new node; head->next=NULL; tail=head; for(i=0; i<n; i++) { p=new node; cin>>p->data; p->next=NULL; tail->next=p; tail=p; } return head;}int main(){ int n, k; int len; int i, j; cin>>n; struct node *head, *w, *q; head = creat(n); cin>>k; //输入要被删除的数据//输出链表1 w=head->next; len=n; cout<<len<<endl; for(j=0; j<len; j++) { if(j==0) cout<<w->data; else cout<<" "<<w->data; w=w->next; } cout<<endl;//进行删除操作 len=n; w=head->next; q=head; //q的后继是w for(j=0; j<n; j++) { if(w->data =http://www.mamicode.com/= k)" "<<w->data; w=w->next; } cout<<endl; return 0;}
数据结构之 线性表---单链表操作A (删除链表中的指定元素)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。