基本运算符优先级存储方式及实现(树的方式,稀疏矩阵的压缩存储)

本文介绍了一种利用树形结构存储运算符优先级的方法,仅保留最左侧子树并将其余位置填充为0,通过顺序存储及稀疏矩阵压缩技术,实现了高效的运算符优先级查询和存储空间的节约。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以树的方式存储优先级,只需保留最左侧子树即可,其余位置皆为0元素。采用顺序存储方式,可以较快判断出该运算符号的优先级,同时,采用稀疏矩阵压缩,可节省大量存储空间。

如图,运算符的层数即为其优先级,其中只保存一条支路的树,其余空位置全部补0,然后采用稀疏矩阵的方式进行存储。

压缩矩阵存储通过三元组存储实现:

111
212
321*
422/
531+
632 -
定义结构体如下:

typedef struct    //三元组结构 
{
	int i,j;//元素的行列下标 
	char v;//元素值 
}tuple;
typedef struct    //三元组表结构 
{
	int m,n,t;//行数、列数、非零元素个数 
	tuple data[maxnum];
}spmatrix;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值