第19周上机实践项目1——动态链表体验(1)

来源:互联网 发布:涉税数据保密协议范本 编辑:程序博客网 时间:2024/04/28 16:43

问题及代码

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:辛彬 * 完成日期:2015 年 1 月 29 日 * 版 本 号:v1.0 * * 问题描述:编写make_list2()函数建立链表,使建立链表时,后输入的数据,将新输入的数字对应的结点放在链表末尾。。 * 输入描述:一些整数。 * 程序输出:链表的值。 */#include <iostream>using namespace std;struct Node{    int data;            //结点的数据    struct Node *next;  //指向下一结点};Node *head=NULL;    //将链表头定义为全局变量,以便于后面操作void out_list();    //输出链表void make_list2();int main( ){    make_list2();    out_list();    return 0;}void out_list(){    Node *p=head;    cout<<"链表中的数据为:"<<endl;    while(p!=NULL)    {        cout<<p->data<<" ";        p=p->next;    }    cout<<endl;    return;}void make_list2(){    int n;    Node *p,*q;    cout<<"输入若干正数(以0或一个负数结束)建立链表:"<<endl;    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;}

运行结果:

学习感悟:复习了下链表,配合贺老师的讲解,总算弄明白了q的作用,它其实就相当于一个看家的,当p去开辟下一个空间时,q通过q=p留在了上一个空间,通过q->next=p指向新开辟的空间,从而使整个链表具有动感。

0 0
原创粉丝点击