无头节点的单循环链表中删除指针s所指结点的前驱结点

2024-05-01 09:32

本文主要是介绍无头节点的单循环链表中删除指针s所指结点的前驱结点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <stdio.h>
typedef int ElemType;
typedef struct
{ElemType data;struct LNode *next;
}LNode, *CLinkList;void initLink(CLinkList L);//初始化头节点
void createLink(CLinkList L, ElemType *arr, int n);//用长度为n的数组创建链表
void showList(CLinkList L);//输出指定节点之后的所有节点//返回L后第n个节点(n可超过L的总节点个数)
LNode *creLNodePoint(CLinkList L, int n);
//删除s的前驱节点
void delPrior(LNode *s);int main()
{ElemType data[6] = {1, 2, 3, 8, 4, 5 };int length = sizeof(data) / sizeof(ElemType);CLinkList L = (CLinkList)malloc(sizeof(CLinkList));LNode *s;initLink(L);createLink(L, data, length);printf("原链表:\t\t");showList(L);s = creLNodePoint(L,4);//制作指向循环链表某节点的指针delPrior(s);//删除s的前驱节点printf("s指向的数据为%d\n",*s);printf("删除其前驱节点:\t");showList(L);getchar();return 0;
}void initLink(CLinkList L)
{L->data = 0;L->next = L;
}void createLink(CLinkList L, ElemType *arr, int n)
{LNode *node = NULL;LNode *r = L;int i;r->data = arr[0];for (i = 1; i < n; i++){node = (LNode *)malloc(sizeof(LNode));node->data = arr[i];node->next = r->next;r->next = node;r = r->next;}
}void showList(CLinkList L)
{int i;LNode *r = L;while (r->next != L){printf("%d ", r->data);r = r->next;}printf("%d ", r->data);printf("\n");
}//返回L后第n个节点(n可超过L的总节点个数)
LNode *creLNodePoint(CLinkList L, int n)
{LNode *s = L;while (n--){s = s->next;}return s;
}//删除s的前驱节点
void delPrior(LNode *s)
{LNode *p = s;LNode *r = p;while (p->next != s){r = p;p = p->next;}r->next = s;free(p);
}

这篇关于无头节点的单循环链表中删除指针s所指结点的前驱结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951329

相关文章

解决java.lang.NullPointerException问题(空指针异常)

《解决java.lang.NullPointerException问题(空指针异常)》本文详细介绍了Java中的NullPointerException异常及其常见原因,包括对象引用为null、数组元... 目录Java.lang.NullPointerException(空指针异常)NullPointer

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超