在单向链表中插入节点——C语言基础

向单向链表插入节点

前言:链表的插入过程就是把新建的节点插入到已有的链表中,鉴于此种理解,也可以把链表的创建看做是一种特殊的插入节点过程,但是具体来说,链表的插入较于链表的创建来说稍复杂一些。

一、问题描述

    编写函数,将一个节点插入到一个已有学生链表中,设已有链表按学号有小到大顺序已经排列。

二、算法描述

(1) 输入数据
(2) 生成新节点
(3) 将数据存入新节点
(4) 在链表中寻找第一个大于新节点的学号

注意:该算法的难点是第四步——在链表中寻找第一个大于新节点的学号
    凡事查找类问题均存在可查找和不可查找两种情况,不可查找的原因只有一个,那就是链表是空的,可查找也分为两种情况,一是找到了,二是没找到,前者说明找到了第一个比新节点学号大的节点,至于那个结点的位置另当别论,后者说明不存在比新节点学号大的节点,具体可以罗列如下:
在这里插入图片描述

三、代码部分
1. structure.h
// Structure
// Created by Lanyan on 20/07/2021.
// JiaoZuo

#ifndef _structure_h
#define _structure_h
#include "stdio.h"

struct stu{
             //定义一个包含学号和成绩的结构体
    int num;         //数据域
    float score;     //数据域
    struct stu *next;//指针域
};

#endif
2. insert.h
// insert a note into a singly linked list
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值