输入矩阵的非邻元素建立十字链表并按行方式打印该十字链表的完整程序

/*   输入矩阵的非领元素建立十字链表并按行方式打印该十字链表的完整程序   */
struct matnode                             /* 十字链表结点的定义 */
{
  int row,col;
  struct matnode *right,*down;
     union  {
 int val;
 struct matnode *next;
     }tag;
};
struct matnode *createmat()
{
  int m,n,t,s,i,r,c,v; 
  struct matnode *h[100],*p,*q;            /* h[]是十字链表每行的表头指针数组 */
  printf("行数m,列数n,非零元素个数t:");
  scanf("%d,%d,%d",&m,&n,&t);
  p=(struct matnode *)malloc(sizeof(struct matnode));
  h[0]=p;
  p->row=m;
  p->col=n;
  s=m>n ? m:n;
  for(i=1;i<=s;i++)
  {
    p=(struct matnode *)malloc(sizeof(struct matnode));
    h[i]=p;
    h[i-1]->tag.next=p;
    p->row=p->col=0;
    p->down=p->right=p;
  }
  h[s]->tag.next=h[0];
  for(i=1;i<=t;i++)                        /* t为非零元素个数 */
  {
    printf("t 第%d个元素(行号m,列号n,值v):",i);
    scanf("%d,%d,%d",&r,&c,&v);
    p=(struct matnode *)malloc(sizeof(struct matnode));
    p->row=r;
    p->col=c;
    p->tag.val=v;
    q=h[r];
    while(q->right!=h[r]&&q->right->col<c)
   q=q->right;
    p->right=q->right;
    q->right=p;
    q=h[c];
    while(q->down!=h[c]&&q->down->row<r)
   q=q->down;
   p->down=q->down;
   }
   return(h[0]);
}

时间: 2024-10-11 00:21:35

输入矩阵的非邻元素建立十字链表并按行方式打印该十字链表的完整程序的相关文章

n阶的稀疏的相邻矩阵如重排序将非0元素 尽可能排到主对角线附近

问题描述 n阶的稀疏的相邻矩阵如重排序将非0元素 尽可能排到主对角线附近 相邻矩阵代表N个节点之间关系的N*N,是个稀疏矩阵,N=100,如何对其重新排序,使得非零元素尽可能排到主对角线附近,使得矩阵中的有效值尽量聚集在一起,造成主对角占优 解决方案 这个问题专业性太高了,可能大部分人都不会啊,让管理员加悬赏吧,不然就沉了

理解CSS浮动元素建立更好网站

css|浮动 层叠式样表(CSS)正迅速成为网页布局与定位的实际标准.它们易于使用.不需要任何特殊的软件.并可在大多数主要的浏览器上应用.但是,正确使用它们需要全面了解一个特殊布局的功能性目的,保证生成的样式表在逻辑和功能上都能正确使用,并能够与各种浏览器和查看设备兼容. 通常,Web开发者往往无法理解式样表的这个特殊问题,导致要在代码中使用大量的"hack"才能获得预期的结果.为解决这个问题,很值得花一些时间来理解CSS的一些核心驱动程序和概念.开发者需要了解的一个最重要的概念是所谓

智能指针-c++ excel dll 数组输入后如何对数组元素值进行计算?

问题描述 c++ excel dll 数组输入后如何对数组元素值进行计算? 问题是这样的 IDE:visual c++ 2013 community excel:2010 目的:编写excel dll 目前阶段:实现了在excel中单元格输入,单元格输出的函数编写,如a+b 现在想要尝试数组/矩阵输入后,经过一定的计算,以数值输出到单元格,如得到这个数组所有元素的总和之类的. 已知输入 #import "C:Program Files (x86)Common Filesmicrosoft sha

C语言求矩阵的各列元素之和的代码示例_C 语言

问题描述:统计一个矩阵的各列元素之和.矩阵各元素为整数且绝对值不超过100.要求输入:有多个测试用例,每个测试用例的第一行是空格分隔的两个正整数n和m( 1 < n, m < 80 ),接下来的n行每行有m个空格分隔的整数,组成一个n*m的矩阵.最后一个测试用例n=0 m=0不用处理.要求输出:对每个测试用例,输出一行整数(空格分隔),顺序表示从第1列至第m列的各列元素之和.输入示例: 3 5 1 1 1 2 -1 0 1 0 7 4 0 2 0 -8 -4 2 2 1 1 0 1 0 0 输

《HTML5开发手册》——1.3 初学者“菜谱”:使用header元素建立网站标头

1.3 初学者"菜谱":使用header元素建立网站标头 我们首先从一个典型的Web页面的顶端开始. header元素经常出现在Web页面的最上面,它通常包含了logo.网站名称.网站导航等信息.它可以在一个页面中多次使用,后面将会讲到,它可以用于页面中特定分段区域(section)的导航,而不仅仅是页面到页面的导航.诸如搜索栏或者目录等也可以包含在header元素中.下面是一个简单的例子: HTML5规范提到,header元素可以包含导航,所以图1.2中的元素可以使用一个包含logo

html中label宽度设置、非替换元素和替换元素

<label ></label> 单独对label设置一个width:100px的属性石不起作用的,和float:left或者display:inline-block配合的话 都可以设置上  参考:css position, display, float 内联元素.块级元素  在 CSS 中,任何元素都可以float浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.如果浮动非替换元素,则要指定一个明确的宽度:否则,它们会尽可能地窄. 元素是文档结构的基础,在css里面,每个元

在非SQL客户端使用命令行方式定期连接SQL Server服务器

在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容 一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接(系统自带,建立一个后缀为.udl的文件即可体验),进行可视化的操作. Figure 1使用ConnMaker.exe创建的可视化连接查询实例 不过这次用户的需求是因为他们在尝试进行连接到SQL服

与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控

原文:与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控 [索引页][源码下载] 与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控 作者:webabcd 介绍与众不同 windows phone 7.5 (

C#中用二维数组的方式实现螺旋渐开矩阵,请问怎么做?有没有高效的方式呢?

问题描述 C#中用二维数组的方式实现螺旋渐开矩阵,请问怎么做?有没有高效的方式呢? C#中用二维数组的方式实现螺旋渐开矩阵,请问怎么做?有没有高效的方式呢? 解决方案 http://blog.csdn.net/mrliming/article/details/5165496http://www.docin.com/p-551336358.html