【浙大数据结构学习笔记】2.1.4 广义表和多重链表

2.1.4 广义表和多重链表

广义表

定义:广义表的元素不仅可以是一个单元数,还可以是另一个广义表。它是线性表的推广,线性表的n个元素都是基本的单元素。

typedef struct GNode *GList;
  struct LNode{
  	int Tag;//标志域;1-广义表;0-单元素 
  	
  	union{//子表指针域SubList和单元素Data复用,即公用存储空间 
  		int Data;
  		GList SubList;
	  }GRegion;
	  
  	GList Next;//指向后继结点 
}

在这里插入图片描述

多重链表

定义:链表中的结点可能同时隶属于多个链表。
多重链表域的指针可能有多个,如上面就有Next和SubList两个 ;但是有两个指针域的链表不一定是多重链表,比如双向链表不是多重链表。

稀疏矩阵

A = [ 18 0 0 2 0 0 27 0 0 0 0 0 0 − 4 0 23 − 1 0 0 12 ] A=\left[ \begin{matrix} 18 & 0 & 0 & 2 & 0 \\ 0 & 27 & 0 & 0 & 0 \\ 0 & 0 & 0 & -4 & 0 \\ 23 &-1&0& 0 & 12 \end{matrix} \right] A=180023027010000204000012
两种表示系数矩阵的方法的比较:

  1. 二维数组:需要事先确定数组大小,存储零项时,造成不必要的空间浪费
  2. 多重链表:只存储非零项:结点的数据域——行、列、值,每个结点通过两个指针域把行列串联起来。
    在这里插入图片描述
    标识域Tag表示头结点和非0结点。
    Down:下指针;Right:右指针。
    在这里插入图片描述
    其中,
    在这里插入图片描述
    上图的结点是整个矩阵的入口结点,它的意思是矩阵A有4行5列7个元素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值