【带头学C++】----- 七、链表 ---- 7.5 学生管理系统(链表--上)

目录

1.main函数设计

 2.定义Node节点类型

3.链表插入结点

在main函数中调用插入函数、打印函数

插入结点函数实现(头插法)

 插入结点函数实现(尾插法)

遍历链表函数实现 

4.演示插入、遍历结果 


本节分上下两节,主要是对链表进行一个实操演练。本章节小节记录的是数据链表的学生管理系统实现方法,主要有链表的创建、链表插入、链表遍历,此前所学还是单向链表,后续会退出单向循环链表、双向链表、双向循环链表等;

1.main函数设计


int main()
{
    helpMessage();

    while(1){
        char cmd[64] = "";
        cout<<"请输入操作指令: ";
        cin >> cmd;

        if(strcmp(cmd,"help") == 0){
            helpMessage();
        }else if(strcmp(cmd,"insert") == 0){
            cout << "-------insert-------"<

link.cpp

#include "link.h"

Link::Link()
{

}

void  helpMessage()
{
    cout<<"  *********************************"<

 【带头学C++】----- 七、链表 ---- 7.5 学生管理系统(链表--上)_第1张图片

 2.定义Node节点类型

struct STU_NODE{
    //数据域
    int  num;
    char name[32];
    
    //指针域
    STU_NODE *next;
};

3.链表插入结点

在main函数中调用插入函数、打印函数

【带头学C++】----- 七、链表 ---- 7.5 学生管理系统(链表--上)_第2张图片

插入结点函数实现(头插法)

//链表插入之 在头部之前插入(头插法)
STU_NODE *insertLink(STU_NODE *head,STU_NODE tmp){
    //从堆区申请带插入的节点空间
    STU_NODE *pnode = new STU_NODE();
    //给空间赋值
    *pnode = tmp;
    pnode->next = nullptr;

    //判断链表这个结点为不为空
    if(nullptr == head){  //不存在
        head = pnode;

    }else{//链表存在
        pnode->next = head;
        head = pnode;
    }
     return  head;
}

 插入结点函数实现(尾插法)

//链表插入之 在尾部之后插入(尾插法)
STU_NODE *insertLink(STU_NODE *head,STU_NODE tmp){
    //从堆区申请带插入的节点空间
    STU_NODE *pnode = new STU_NODE();
    //给空间赋值
    *pnode = tmp;
    pnode->next = nullptr;

    //判断链表这个结点为不为空
    if(nullptr == head){  //不存在
        head = pnode;

    }else{//链表存在
        //寻找尾节点
        STU_NODE *pnewnode = head;
        while(pnewnode->next != nullptr)
            pnewnode = pnewnode->next;
        //在尾节点插入pnode
        pnewnode->next = pnode;
    }
     return  head;
}

遍历链表函数实现 

void printLink(STU_NODE *head){
    if(nullptr == head){  //不存在
        cout<<"Link is not exist"<num<<" "<name<next;
    }

    return;
}

4.演示插入、遍历结果 

【带头学C++】----- 七、链表 ---- 7.5 学生管理系统(链表--上)_第3张图片

你可能感兴趣的:(C++从基础到抗大旗,c++,链表,算法,数据结构,笔记,开发语言)