数据结构上机测试2-1:单链表操作A
2016-05-28 19:12
363 查看
题目描述
输入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 <bits/stdc++.h>
using namespace std;
struct node
{
int data;
struct node *next;
};
int main()
{
int i,n,m,w=0,l=0;
struct node *head,*p,*q,*tail;
head = new struct node();
head -> next = NULL;
cin>>n;
tail=head;
for(i=0; i<n; i++)
{
q=new struct node();
cin>>q->data;
q->next=NULL;
tail->next=q;
tail=q;
}
cin>>m;
cout<<n<<endl;
p=head->next;
while(p!=NULL)
{
cout<<p->data;
if(p->next!=NULL)
cout<<" ";
p=p->next;
}
cout<<endl;
p=head->next;
while(p!=NULL)
{
if(p->data==m)
{
w++;
p=p->next;
}
else
p=p->next;
}
cout<<n-w<<endl;
p=head->next;
while(p!=NULL)
{
if(p->data==m)
p=p->next;
else
{
cout<<p->data;
l++;
if(l!=(n-w))
cout<<" ";
p=p->next;
}
}
cout<<endl;
return 0;
}
相关文章推荐
- 【技巧】通过适配器模式完成栈的数据结构
- 数据结构上机测试1:顺序表的应用
- 经典算法和数据结构(一) 优先级队列与堆排序
- 《C专家编程》:C程序运行时的数据结构(六)
- 广义表
- 数据结构—二叉树的遍历—递归
- 哈希表(开链法)
- c实现哈希查找
- 尾递归
- 谈谈数据结构课后作业......尴尬不已...《图》 后面的迷宫问题
- 数据结构—二叉树基本操作
- 半边数据结构(The_Half-Edge_Data_Structure)
- 经典算法和数据结构(四) 平衡查找树之B树
- 经典算法和数据结构(三): 平衡查找树之红黑树
- 数组的基础知识
- 一点资源【1、嵌入式的视频,里面有数据结构】
- SDUT1138数据结构上机测试2-1:单链表操作A
- AVL树C实现
- 数据结构——栈
- 数据结构与算法分析(5)表、栈和队列(一)