c语言数据结构---十字链表

#include<stdio.h>
#include<stdlib.h>
typedef struct node{//十字链表 输入三元组返回矩阵 int row,col,val;struct node *down,*right;
}JD,*J;
typedef struct {J *rhead,*chead;int mu,nu,tu;//行列非0元 
}CS;
CS creat(CS M){int m,n,t;;int k,j,e;JD *p,*q;printf("input row,col,非0个数:\n");scanf("%d %d %d",&m,&n,&t);M.mu=m;M.nu=n;M.tu=t;if(!(M.rhead=(J*)malloc((m+1)*sizeof(J)))||!(M.chead=(J*)malloc((n+1)*sizeof(J)))){printf("error init\n");exit(0); }printf("success init!\n");for(k=1;k<=m;k++){M.rhead[k]=NULL;}for(j=1;j<=n;j++){M.chead[j]=NULL;}for(scanf("%d%d%d",&k,&j,&e);0!=k;scanf("%d%d%d",&k,&j,&e)){if(!(p=(J)malloc(sizeof(JD)))){printf("error int element\n");exit(0);}p->row=k;p->col=j;p->val=e;if(NULL==M.rhead[k]||M.rhead[k]->col>j){//链接行 p->right=M.rhead[k];M.rhead[k]=p;}else{for(q=M.rhead[k];(q->right)&&q->right->col<j;q=q->right);p->right=q->right;q->right=p;}if(NULL==M.chead[j]||M.chead[j]->row>k){//链接列 p->down=M.chead[j];M.chead[j]=p;}else{for(q=M.chead[j];(q->down)&&q->down->row<k;q=q->down);p->down=q->down;q->down=p;}}return M;
}
void print(CS M){for(int i=1;i<=M.nu;i++){if(NULL!=M.chead[i]){J p=M.chead[i];while(NULL!=p){printf("%d  %d  %d\n",p->row,p->col,p->val);p=p->down;}}}
}
int main(){CS M;M.chead=NULL;M.rhead=NULL;M=creat(M);printf("print \n");print(M);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch和sboot整合

Elasticsearch是一个开源的、高性能的分布式搜索引擎&#xff0c;可以实现全文搜索、分析和存储等功能。Spring Boot是一个开源的Java框架&#xff0c;可以用于快速开发和部署应用程序。 将Elasticsearch和Spring Boot整合可以使得我们更加方便地使用Elasticsearch进行搜索和数…

Ajax实现步骤和原理

Ajax实现步骤和原理 一、什么是Ajax? Ajax 异步 JavaScript 和XML。   Ajax是一种用于创建快速动态网页的技术。   通过在后台与服务器进行少量数据交换&#xff0c;Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下&#xff0c;对网页的某部分进…

Java并发面试题知识点总结(下篇)

大家好&#xff0c;我是栗筝i&#xff0c;从 2022 年 10 月份开始&#xff0c;我便开始致力于对 Java 技术栈进行全面而细致的梳理。这一过程&#xff0c;不仅是对我个人学习历程的回顾和总结&#xff0c;更是希望能够为各位提供一份参考。因此得到了很多读者的正面反馈。 而在…

Day01_《MySQL索引与性能优化》摘要

一、资料 视频&#xff1a;《尚硅谷MySQL数据库高级&#xff0c;mysql优化&#xff0c;数据库优化》—周阳 其他博主的完整笔记&#xff1a;MySQL 我的笔记&#xff1a;我的笔记只总结了视频p14-p46部分&#xff0c;因为只有这部分是讲解了MySQL的索引与explain语句分析优化…

【ruoyi】微服务关闭登录验证码

登录本地的nacos服务&#xff0c;修改&#xff1a;配置管理-配置列表-ruoyi-gateway-dev.yml 将验证码的enabled设置成false&#xff0c;即可

530.二叉搜索树的最小绝对

原题链接&#xff1a;530.二叉搜索树的最小绝对差 思路&#xff1a; 因为是二叉搜索树&#xff0c;根据他的特性&#xff0c;直接递归中序遍历获取所有元素&#xff0c;成为一个有序数组 然后在有序数值内进行双指针递归遍历即可获得最小差值 因为是有序数组&#xff0c;所以其…

深度学习之基于YoloV5的目标检测和双目测距系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 双目测距系统利用两个相机的图像来计算目标到相机的距离。通过对左右相机图像进行立体匹配&#xff0c;可以获得目标…

Ubuntu安装Qt出现bash: ./qt-unified-linux-x64-4.6.1-online.run: 权限不够的问题解决

在Ubuntu安装qt&#xff0c;在官网下载了linux的版本下载后为类似qt-unified-linux-version.run的文件&#xff08;比如我这里是qt-unified-linux-x64-4.6.1-online.run&#xff09;的文件&#xff0c;直接在终端运行【这里的version注意改为文件的原有的名字】&#xff1a; .…

如果不用Baklib,哪一个帮助中心工具能够替代它?

在各行各业进入“留量时代”的当下&#xff0c;让用户获得良好的体验和留存老客户变得更为关键&#xff0c;这对于企业的客户服务提出了更高的要求。在使用各类互联网产品时&#xff0c;用户更倾向于通过自助方式寻找答案并解决问题&#xff0c;因此帮助中心的重要性也在不断提…

4路光栅尺磁栅尺编码器解码转换5MHz高速差分信号转Modbus TCP网络模块 YL97-RJ45

特点&#xff1a; ● 光栅尺磁栅尺解码转换成标准Modbus TCP协议 ● 光栅尺5V差分信号直接输入&#xff0c;4倍频计数 ● 模块可以输出5V的电源给光栅尺供电 ● 高速光栅尺磁栅尺计数&#xff0c;频率可达5MHz ● 支持4个光栅尺同时计数&#xff0c;可识别正反转 ● 可网…

OSCNet: Orientation-Shared Convolutional Network for CT Metal Artifact Learning

OSCNet: 面向共享的CT金属伪影学习卷积网络 论文链接&#xff1a;https://ieeexplore.ieee.org/document/10237226 项目链接&#xff1a;https://github.com/hongwang01/OSCNet&#xff08;目前不会开源&#xff09; Abstract X射线计算机断层扫描(CT)已广泛应用于疾病诊断和…

如何利用IP代理进行海外推广?

在当今数字化的时代&#xff0c;网络营销已经成为企业策略的重要组成部分。而对于进去海外市场的跨境玩家来说&#xff0c;海外的推广推广是重中之重。然而&#xff0c;在开展推广的过程中&#xff0c;我们常常会遇到各种挑战&#xff0c;如地域限制、访问速度慢等。 为了解决…

arcgis--消除坐标系信息的两种方法

方法一&#xff1a;在【目录】中右击待修改数据&#xff0c;选择【属性】&#xff0c;选择【XY坐标】选项卡&#xff0c;点击清楚按钮。 方法二&#xff1a;在【数据管理工具】-【投影与变换】-【定义投影】中清楚坐标系信息。如下&#xff1a;

linux 的uart驱动框架分析

文章目录 一、底层串行硬件驱动程序二、Console支持三、锁支持四、核心数据结构1、struct uart_driver2、struct uart_port3、struct uart_ops四、常用API总结五、uart驱动示例剖析1、原厂设计的uart驱动2、8250标准uart驱动六、总结🔺【linux内核系列文章】 👉对一些文章内…

el-table实现单选和隐藏全选框和回显数据

0 效果 1 单选 <el-table ref"clientTableRef" selection-change"clientChangeHandle"><el-table-column fixed type"selection" width"50" align"center" /><el-table-column label"客户名称" a…

ChatGPT-4:OpenAI的革命性升级

在人工智能领域&#xff0c;OpenAI这家公司凭借其创新性的技术&#xff0c;成为了备受瞩目的领导者。他们最近发布的ChatGPT-4&#xff0c;以其卓越的语言处理能力和先进的模型架构&#xff0c;引领了语言模型领域的革命性升级。 ChatGPT-4的模型容量相较于前一版本有了显著的提…

“糖尿病日”感言

长期旺盛的写作欲&#xff0c;今天忽地就莫名其妙地衰退下来了。感到浑身都不舒服&#xff0c;特别是过去从未出现过的腰微痛、乏力现象发生了。 转念一想&#xff0c;或是老龄人一日不如一日的正常反应吧&#xff1f;而且&#xff0c;今天恰逢“ 联合国糖尿病日”&#xff0c…

塔式服务器是什么服务器?

在当今数字时代&#xff0c;数据的处理和存储需求不断增长&#xff0c;企业和组织需要强大而可靠的服务器来支持其业务运营和数据管理。塔式服务器作为一种常见的服务器架构&#xff0c;以其出色的性能、灵活性和可扩展性成为了许多企业和组织的首选。 塔式服务器的外观类似于…

【MySQL】库和表的操作

目录 一、库操作1.创建数据库字符集和校验规则校验规则对数据库的影响 2.查看数据库3.修改数据库4.删除数据库5.数据库备份6.查看连接情况 二、表操作1.创建表2.查看表3.修改表4.删除表 一、库操作 1.创建数据库 create database db1; //方法1 create database is not exists…

Live800:金牌客服常用的6大提问技巧

在客服行业&#xff0c;提问技巧是非常重要的一项技能。好的提问技巧不仅能够帮助客服人员更好地了解客户需求&#xff0c;还能够提高客户满意度和忠诚度。以下是金牌客服常用的6大提问技巧&#xff0c;希望能够对客服人员提升工作效率有所帮助。 1、开放性问题 开放性问题是指…