学术休假期 项目1-动态链表体验3



(3)编写函数delete_first_node(),删除链表中的第一个结点。

#include  <iostream>
using namespace std;
struct Node
{
    int data;            //结点的数据
    struct Node *next;  //指向下一结点
};
Node *head=NULL;    //将链表头定义为全局变量,以便于后面操作
void make_list();   //建立链表
void out_list();    //输出链表
void delete_first_node();
int main( )
{
    make_list();
    out_list();
    delete_first_node();
    out_list();
    return 0;
}
void make_list()
{
    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;
}
void delete_first_node()
{
    Node *p=head;
    if (p!=NULL)  //删除首结点
    {
        head = p->next;
        delete p;
    }
    cout<<"删除后"<<endl;
    return;
}

运行结果:

知识点总结:

删除后一个节点后直接输出该节点值为零

学习心得:

好好学习 天天向上

时间: 2024-10-08 09:57:09

学术休假期 项目1-动态链表体验3的相关文章

学术休假期 项目1-动态链表体验 代码

 下面是一个建立动态链表的程序.阅读程序,在草稿纸上画出链表建立的过程,借此学会如何建立链表.然后按要求改造程序. #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //建立链表 void out_list(); //输出

学术休假期 项目1-动态链表体验2

 (2)编写函数void search(int x),输出链表中是否有值为x的结点. #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //建立链表 void out_list(); //输出链表 int main( )

学术休假期 项目1-动态链表体验1

 (1)编写make_list2()函数建立链表,使建立链表时,后输入的数据,将新输入的数字对应的结点放在链表末尾.若输入为3 5 2 9 4 7 0,建立的链表为: #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //

学术休假期 项目2-猴子选大王 (动态链表)

链表关系好混乱 /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:猴子选大王.cpp *作 者:冷基栋 *完成日期:2015年2月12日 *版 本 号:v1.0 * *问题描述:一群猴子,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.输入m和n,输出为大王的猴子是几号. 提示1:(1)链

学术休假期 项目3 (1)应用枚举

问题及代码: 阅读教材7.3节,了解枚举类型的一般用法.阅读下面输出He先生买车方案的程序,理解使用枚举类型的意义. /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:He先生买车方案.cpp *作 者:冷基栋 *完成日期:2015年2月26日 *版 本 号:v1.0 */ #include <iostream> using namespace std; enum Color {red,black,white};

学术休假期 项目4-点和距离

问题及代码: 读程序,写出函数的定义,注意其中枚举类型的用法 /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:点和距离.cpp *作 者:冷基栋 *完成日期:2015年2月26日 *版 本 号:v1.0 */ #include <iostream> #include <Cmath> using namespace std; enum SymmetricStyle {axisx,axisy,point}

学术休假期 项目5-读懂共同体

问题及代码: 运行下面的程序,并解释运行结果. /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:点和距离.cpp *作 者:冷基栋 *完成日期:2015年2月26日 *版 本 号:v1.0 */ #include <iostream> using namespace std; union un { int i; char c[4]; }; int main() { union un x; x.c[0]='A';

学术休假期 项目3(2)-平面点的对称点

问题及代码: 设计函数,可以按指定的方式,输出一个平面点的对称点 下面给出枚举类型定义和main函数(测试函数),请写出output函数的实现. /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:平面点.cpp *作 者:冷基栋 *完成日期:2015年2月26日 *版 本 号:v1.0 */ #include<iostream> using namespace std; enum SymmetricStyle {a

第二十四周项目3-动态链表体验

下面是一个建立动态链表的程序.阅读程序,在草稿纸上画出链表建立的过程,借此学会如何建立链表.然后按要求改造程序. #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //建立链表 void out_list(); //输出链表