单向链表

本文详细介绍了单向链表的创建、逆序数据建立、删除操作、链表逆置以及如何将奇数值结点分离成新链表。在链表的创建中,以学生信息管理系统为例;删除操作中,删除指定条件的结点;逆置操作则改变链表头部和尾部的关系;奇偶数结点链表部分,将原链表中奇数值结点分离并形成新链表。
摘要由CSDN通过智能技术生成

单链表的创建、删除、逆置、奇偶数结点链表

1.链表的创建、逆序数据建立链表

(1)创建链表
以学生信息管理系统为例,利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:

struct stud_node {
   
    int              num;      /*学号*/
    char             name[20]; /*姓名*/
    int              score;    /*成绩*/
    struct stud_node *next;    /*指向下个结点的指针*/
};

当学号为0时结束输入,函数返回单链表的头指针。

struct stud_node *createlist()
{
   
    struct stud_node *p,*head,*tail;
    int num, score;
    char name[20];
    head=tail=NULL;
    p=(struct stud_node*)malloc(sizeof (struct stud_node));
    if(scanf("%d",&num) == 1)
    {
   
        while(num)
        {
   
            if(scanf("%s%d",name,&score) == 2)
            {
   
            p->num=num;p->score=score;
            strcpy(p->name,name);
            p->next=NULL;
            if(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值