第十九周项目一(二):动态链表体验二(输出链表中是否有值为x的结点)
2015-01-27 16:47
260 查看
/* *copyright (c) 2014, 烟台大学计算机学院. *All rights reserved. *文件名称:test.cpp *作者:陆云杰 *完成日期:2015年1月27日 *版本号:v1.0 * * *问题描述:动态链表体验二 *程序输入:数据 *程序输出:链表中是否有值为x的结点 */ #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //建立链表 void out_list(); //输出链表 void search(); int main( ) { make_list(); out_list(); search(); return 0; } void make_list() { int n; Node *p; cout<<"输入若干正数(以0或一个负数结束)建立链表:"; cin>>n; while(n>0) //输入若干正数建立链表,输入非正数时,建立过程结束 { p=new Node; //新建结点 p->data=n; p->next=head; //新建的结点指向原先的链表头 head=p; //链表头赋值为新建的节点,这样,新结点总是链表头 cin>>n; //输入下一个数,准备建立下一个结点 } return; } void out_list() { Node *p=head; cout<<"链表中的数据为:"<<endl; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; return; } void search() { Node *p=head; int i=0,x; cout<<"请输入你要查询的数字"<<endl; cin>>x; while(p!=NULL) { if(p->data==x) { i++; } p=p->next; } if(i>0) cout<<"链表中有值为"<<x<<"的结点。"<<endl; else cout<<"链表中没有值为"<<x<<"的结点。"<<endl; } <img src="http://img.blog.csdn.net/20150127165115213?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVfeXVuamll/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关文章推荐
- 第十九周项目一:动态链表体验(四):删除结点值为X的结点
- 第十九周项目一:动态链表体验(六):将值为X的结点插入到升序的链表中
- 第十八周项目一(2):输出链表中是否有值为x的结点
- 项目一--输出链表中是否有值为X的结点
- 第十九周项目一:动态链表体验(三):删除链表中的第一个结点
- 第十九周项目一:动态链表体验(一)
- 第十九周项目一:动态链表体验(五):建立链表时使链表呈现上升趋势
- 第十八周项目一(0):动态链表体验
- 项目 1 动态链表体验(1)
- 第十八周项目1-1:动态链表体验
- 第19周上机实践项目1——体验动态链表(6)
- 总结体验1:就比如上面自己写的单链表建立这样的程序,其实明明知道输出单链表不能从头结点开始输入,而是要在第一个节点开始
- 2015-1-18链表,枚举 项目一:动态链表体验
- 输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0个结点为链表的尾指针。
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输出该链表中倒数第k个结点
- 1)两链表的第一个公共结点 2)判断两链表是否相交
- 输出链表倒数第K个结点
- [java 面试100道]13.输入一个单向链表,输出该链表中倒数第k个结点。
- 输出一个单向链表中间的结点