从零开始的数据结构学习日记(十)——1.10数组和广义表

1.1数组的存储结构

1.行优先存储结构
将数组元素按行向量的顺序存储,即第i+1行的元素放在第i行的元素之后,元素存储的线性序列为:a11,a12…,a1n,a21,a22…,a2n…
2.列优先存储结构
将数组元素按列向量的顺序存储,即第j+1行的元素放在第j行的元素之后,元素存储的线性序列为:a11,a12,…,am1,a12,a22,…,am2…

1.2广义表

广义表中的数据元素可以是原子也可以是子表,因此它为一种带有层次的非线性结构,难以用顺序存储结构表示,通常采用链式存储结构来存储。广义表的长度为最外层包含的元素个数
1.头尾表示法
一个表结点由三部分构成,分别为标志域、指向表头的指针域和指向表尾的指针域,其中,标志域tag=1为标志域,tag=0为原子结点。

typedef struct node
{
	int tag;
	union{//原子结点和表结点共用内存
		datatype data;//原子结点的数据域
		struct
		{
			struct node*hp,*tp;
		}ptr;//ptr.hp和ptr.tp分别指向广义表的表头和表尾
	};
}HTNode;

若广义表为空,则表头指针为空。对于任何非空广义表,其表头指针均指向一个表结点,且该节点中的hp域指向广义表的表头,tp域指向广义表的表尾。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值