数据结构day4链表作业

news/2024/12/17 12:19:26/

一、链表的剩下操作

        1. listLinkPtr.h

//任意位置删除
int index_del(linkListPtr H, int index);//按位置修改
int index_change(linkListPtr H, int index, DataType e);//按值查找返回地址
linkListPtr node_addr(linkListPtr H, DataType e);//反转
//int node_rever(linkListPtr H);//销毁
void my_free(linkListPtr H);

        2. listLinkPtr.c

//------------------------------------------------------------------
//任意位置删除
int index_del(linkListPtr H, int index)
{//判断所接受的链表是否合法//判空//判断删除位置是否合法if(NULL== H || empty(H) || index<1 || index>H->len){printf("删除失败!\n");return 0;}//定义一个指针指向删除位置的前一个节点linkListPtr q = H;for(int i=0; i<index-1; i++){q=q->next;}//删除	linkListPtr p = q->next;q->next=q->next->next;free(p);p=NULL;//删除成功,链表长度自减H->len--;return 1;
}//按位置修改
int index_change(linkListPtr H, int index, DataType e)
{//判断所接受的链表是否合法//判空//判断删除位置是否合法if(NULL== H || empty(H) || index<1 || index>H->len){printf("修改失败!\n");return 0;}//定义一个指针指向要修改位置的节点linkListPtr p = H;for(int i=0; i<index; i++){p=p->next;}//修改数据p->data=e;return 1;
}//按值查找返回地址
linkListPtr node_addr(linkListPtr H, DataType e)
{//判断所接受的链表是否合法//判空if(NULL== H || empty(H)){printf("查询失败!\n");return 0;}//定义一个指针指向要查询的值的节点位置linkListPtr p = H;for(int i=0; i<H->len; i++){p = p->next;if(p->data == e){return p->next;}}printf("无此数据!\n");return NULL;/*//for循环以外的另一种方法while(p->next != NULL){p = p->next;if(p->data == e){return p->next;}}printf("无此数据!\n");return NULL;
*/}/*
//反转
int node_rever(linkListPtr H)
{//判断所接受的链表是否合法//判空if(NULL== H || empty(H)){printf("查询失败!\n");return 0;}//
}
*///销毁
void my_free(linkListPtr H)
{//判断所接受的链表是否合法if(NULL == H){printf("销毁失败!\n");return;}linkListPtr p = H;for(int i=0; i<H->len; i++){	p = H;for(int j=0; j<H->len-i-1; j++){p = p->next;}free(p->next);p=NULL;}free(H);H=NULL;p=NULL;printf("销毁成功!\n");
}

        3. main.c

	printf("-----------------------\n");//任意位置删除index_del(H, 3);show(H);//按位置修改index_change(H, 3, 99);show(H);//按值查找返回地址linkListPtr p = node_addr(H, 99);printf("%p\n", p);//反转//node_rever(H);//show(H);//销毁my_free(H);H=NULL;return 0;

        4. 执行结果

二、链表知识点思维导图


http://www.ppmy.cn/news/1555851.html

相关文章

华为OD机试真题---观看文艺汇演问题

华为OD机试中的“观看文艺汇演问题”是一道考察算法与数据结构能力的题目。以下是对该题目的详细解析&#xff1a; 一、题目描述 为了庆祝某个重要节日&#xff08;如中国共产党成立100周年&#xff09;&#xff0c;某公园将举行多场文艺表演。很多演出都是同时进行的&#x…

PVE系统下——OpenWRT一键扩容脚本(x86下EXT4SquashFS)

扩容了x86上的 OpenWrt 根分区和文件系统。 1.PVE 上增加硬盘大小 2.执行脚本 安装依赖 opkg update opkg install parted losetup resize2fs下载脚本并一键执行 wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced…

前端(vue组件)

1组件对象 1.1定义组件对象 defineComponent( {} ) 1.2注册组件 1.3使用组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

【嵌入式软件】跑开发板的前置服务配置

在嵌入式开发中,通常需要在 开发板和主机之间共享、传输和挂载文件。 这篇文章是关于如何在 Ubuntu 中配置 Samba、TFTP 和 NFS 协议的详细步骤。这些协议分别用于远程文件共享、文件传输和内核挂载文件系统。 如何安装协议: 参考:ubuntu18配置:详细的内容我手写了一份文档。…

派单调度啊

派单调度流程 在抢单业务中&#xff0c;用户下单成功由服务人员或机构进行抢单&#xff0c;抢单成功服务人员上门服务&#xff0c;除了抢单业务系统还设计了派单业务&#xff0c;由系统根据用户订单的特点自动派给合适的服务人员。 系统派单的目的是什么&#xff1f; 根据订…

鸿蒙系统-前端0帧起手

鸿蒙系统-前端0帧起手 先search 一番 找到对应的入门文档1. 运行项目遇到问题 如下 &#xff08;手动设计npm 的 registry 运行 npm config set registry https://registry.npmjs.org/&#xff09;2.运行后不支持一些模拟器 配置一下&#xff08;如下图&#xff0c;运行成功&am…

Amazon Bedrock与AWS服务的无缝集成,如何打造智能化应用

在AI和大数据飞速发展的今天&#xff0c;Amazon Bedrock作为AWS的一项新兴服务&#xff0c;正逐渐成为开发者和企业拥抱生成式AI的核心工具。那么&#xff0c;Amazon Bedrock与AWS其他服务结合&#xff0c;究竟能够带来哪些强大的应用场景呢&#xff1f;今天九河云就来和大家探…

批量导出工作簿中高清图片-Excel易用宝

我同事在工作簿中做了三个图表&#xff0c;现在需要将工作簿中的图标导出保存为高清图片&#xff0c;通过右键另存为保存的图片并非高清图片&#xff0c;其实要把Excel工作簿中的图表或图片对象导出为高清图片也很简单。 单击Excel易用宝 Plus&#xff0c;导出高清图片。 在导出…