项目 1 动态链表体验(1)
2015-02-04 11:23
260 查看
/* *Copyright (C) 2014,烟台大学计算机学院 *All rights reserved. *文件名称 :mian.cpp *作 者 :韩娟 *完成日期 :2015年2月4日 *版 本 号 :v1.0 * *问题描述 :编写make_list2()函数建立链表,使建立链表时,后输入的数据,将新输入的数字对应的结点放在链表末尾。若输入为3 5 2 9 4 7 0 *输入描述 :3 5 2 9 4 7 0 *程序输出 :3 5 2 9 4 7 */ #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list2(); //建立链表 void out_list(); //输出链表 int main( ) { make_list2(); out_list(); return 0; } void make_list2() { int n; Node *p,*q; cout<<"输入若干正数(以0或一个负数结束)建立链表:"; cin>>n; while(n>0) //输入若干正数建立链表,输入非正数时,建立过程结束 { p=new Node; //新建结点 p->data=n; p->next=NULL; //新建的结点指向原先的链表头 if(head==NULL) head=p; else q->next=p; q=p; //链表头赋值为新建的节点,这样,新结点总是链表头 cin>>n; //输入下一个数,准备建立下一个结点 } return; } void out_list() { Node *p=head; cout<<"链表中的数据为:"<<endl; while(p!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<endl; return; }
知识点总结 :
要建立两个指针,才能把前后链接起来,最重要的还是要head=p,头不能为空。
学习心得 :
链表和指针有很密切的关系。
相关文章推荐
- 第十八周项目一(0):动态链表体验
- 第十九周项目一:动态链表体验(四):删除结点值为X的结点
- 第十八周项目1-1:动态链表体验
- 2015-1-18链表,枚举 项目一:动态链表体验
- 第十九周项目一:动态链表体验(六):将值为X的结点插入到升序的链表中
- 第十九周项目一:动态链表体验(三):删除链表中的第一个结点
- 第十九周项目一(二):动态链表体验二(输出链表中是否有值为x的结点)
- 第19周上机实践项目1——体验动态链表(6)
- 第十九周项目一:动态链表体验(一)
- 第十九周项目一:动态链表体验(五):建立链表时使链表呈现上升趋势
- 第十五周 项目二:动态链表初试
- 动态链表体验
- 2013第二周上机任务项目四(动态链表初试)
- C语言动态链表数据结构实现的学生信息项目
- 第十五周上机任务项目2-建立专门的链表类处理有关动态链表的操作
- 动态链表体验3
- 第十八周项目1-2:动态链表查找
- 第二周项目四:动态链表初试(有问题)
- 调试Flex2动态加载的项目
- 动态追加select框中的项目