打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
广义表及其推广
广义表其实是线性表的一种推广,也属于多重链表,他的元素不仅可以是一个单元素也可以是一个广义表。本文介绍 广义表的存储结构和解析union
广义表的存储结构
typedef struct GNode *GList;struct GNode{ int Tag; // 标志域, 0表示节点是单元素,1表示节点是广义表 union // 子表指针域Sublist 与单元素数据域Data复用,即共用存储空间 { ElementType Data; GList SubList; }URegion; GList Next; //指向后继节点 };
这里设置了一个 union 你可以把它看作一个新的结构。
我们用 tag 来区分 是数据域还是指针域
这里节点有两种类型 ,先看term类型
图中数据域表示  第二行第二列  值为27
语言方法
3012C57cc2P5lz
ocA8X抖音3元1000粉
44752008/01/06 19:20:16
再看表头的Term节点
表示这个表有 4行5列  有  7个非零项
这里Term 节点的同一行 ,同一列的循环列表形成  十字链表
这里的head是行的头节点也是列的头节点
注意这里 不论是Term  节点还是 Head节点都有  Down 和 Right  两个指针域  所以我们可以将他们结合成union
这是十字链表解决问题的思路
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数组与广义表
第二十课 广义表
GLib介绍与使用
链表和数组的区别 各有什么优缺点
并查集
数据结构(C++版)PPT 第6章
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服