当前位置: 首页 > news >正文

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.lryc.cn/news/229705.html

相关文章:

  • 使用python电脑轻量级控制手机—adb命令和手机投屏
  • VBA技术资料MF82:替换文件夹中文件名中的字符
  • 如何利用大模型蒸馏出小模型实现降本
  • CentOS 中启动 Jar 包
  • 法治智能起航 | 拓世法宝AI智慧政务一体机重塑法治格局,开启智能司法新篇章
  • 【华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS】
  • c语言数据结构---广义表
  • 2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)
  • MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出
  • js 深度学习(四)
  • leetcode刷题日记:121. Best Time to Buy and Sell Stock( 买卖股票的最佳时机)
  • Mac 本地部署thinkphp8【部署环境以及下载thinkphp】
  • 【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)
  • C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。
  • 基于SSM的供电所档案管理系统
  • excel用RAND函数生成一个大于0小于1的随机数
  • 详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
  • mysql使用--数据库的基本操作
  • 计算机毕业设计选题推荐-个人记账理财微信小程序/安卓APP-项目实战
  • 如何利用IP代理进行海外推广?
  • 使用FFmpeg转封装为hls(m3u8)流
  • npm install导致的OOM解决方案
  • HTTP和HTTPS详解
  • 设计模式之模版方法(TemplateMethod)
  • 为什么数据安全很重要?哪些措施保护数据安全?
  • git push 操作代码回退
  • ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
  • 【链接装载与库】 Linux共享库的组织
  • 大模型时代的机器人研究
  • devops步骤 -- jenkins安装