数据结构上机测试2-1:单链表操作A
2015-08-12 15:29
411 查看
数据结构上机测试2-1:单链表操作A
题目描述
输入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;
}*p,*q,*head,*tail;
void display(struct node *head);
int main()
{
int i,n,m;
cin>>n;
head=new node;
head->next=NULL;
tail=head;
for(i=0; i<n; i++)
{
p=new node;
cin>>p->data;
p->next=tail->next;
tail->next=p;
tail=p;
}
cin>>m;
cout<<n<<endl;
display(head);
p=head->next;
q=head;
while(p)
{
if(p->data==m)
{
q->next=p->next;
free(p);
p->next=q;
n--;
}
q=p;
p=p->next;
}
cout<<n<<endl;
display(head);
}
void display(struct node *head)
{
p=head->next;
while(p)
{
if(p->next)
{
cout<<p->data<<" ";
}
else
cout<<p->data<<endl;
p=p->next;
}
}
相关文章推荐
- 数据结构-静态链表(学习笔记)
- Python常见数据结构整理
- 编程之久除了算法和数据结构,什么也不属于我们。
- 深入理解Git (二) - 内部的数据结构
- 数据结构实验之队列一:排队买饭
- 数据结构基本概念
- 数据结构复习1
- 数据结构-链式线性表(学习笔记)
- 数据结构(二叉搜索树)
- Redis底层数据结构总结
- Manacher算法求回文半径
- 数据结构基础温故-7.排序
- 数据结构之---C语言实现最小生成树之prim(普里姆)算法
- AA树,2-3树二叉化
- 图算法之拓扑排序
- HDU-2647-邻接表模板
- 面试复习重点——数据结构、操作系统、计算机网络、数据库。
- 2015.08.10总结
- 【暑假】[实用数据结构]UVAlive 3026 Period
- 数据结构实验之链表七:单链表中重复元素的删除