单链表操作(单链表)
来源:互联网 发布:p2p网络借贷监管政策 编辑:程序博客网 时间:2024/06/05 04:36
1.题目:
Problem Description
输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。
Input
有多组输入数据,
第一行输入数据个数n(若n=0表示输入结束);
第二行依次输入n个整数;
第三行输入欲删除数据m;
第一行输入数据个数n(若n=0表示输入结束);
第二行依次输入n个整数;
第三行输入欲删除数据m;
Output
第一行依次输出原始单链表的数据;
第二行依次输出完成删除后的单链表数据;
第二行依次输出完成删除后的单链表数据;
Sample Input
1056 25 12 33 66 54 7 12 33 12120
Sample Output
56 25 12 33 66 54 7 12 33 1256 25 33 66 54 7 33
2.参考代码:
#include <iostream>using namespace std;struct Node{int data;Node* next;};class LinkList{private:Node* head;public:LinkList(int* a,int n);~LinkList();void Delete(int x);void show();};LinkList::LinkList(int* a,int n){Node* r,* s;head=new Node;r=head;for(int i=0;i<n;i++){s=new Node;s->data=a[i];s->next=r->next;r->next=s;r=s;}r->next=NULL;}LinkList::~LinkList(){Node* p,* q;p=head;while(p){q=p;p=p->next;delete q;}}void LinkList::Delete(int x){ ///核心代码Node* p,* q;p=head;while(p->next){if(p->next->data==x){q=p->next;p->next=q->next;delete q;}elsep=p->next;}}void LinkList::show(){ ///注意格式,这里没有要求两个数之前有一个空格哈!Node* p;p=head->next;if(p){while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;}}int main(){int n,i,x,a[111];while(cin>>n){if(n==0)break;for(i=0;i<n;i++)cin>>a[i];LinkList w(a,n);w.show();cin>>x;w.Delete(x);w.show();}return 0;}
- 单链表操作(单链表)
- 单链表(基本操作)
- 单链表按值操作(单链表)
- 单链表按值操作(单链表)
- 多项式操作(单链表)
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- 单链表操作
- USACO: 1.1.1 Your Ride Is Here (ride) 解析!
- 有关apt-get install安装vim出现的问题
- CSS学习笔记--第一章
- 数组指针、指针数组、指针函数、函数指针比较
- Java中堆内存和栈内存的区别
- 单链表操作(单链表)
- Oracle DB进程体系结构
- 谈谈网络编程(基于C++语言)
- centos cp命令实例
- 那些师奶真的很over
- CentOS 防火墙配置 80端口的实例详解
- 学会拒绝别人
- Codeforces Round #203 (Div. 2) 水果3题
- android应用程序如何设置样式