java广义表_求Java中比较两个广义表是否相等的代码模版

本文介绍了一个用于判断两个广义表是否相等的递归算法,并提供了具体的C语言实现代码。该算法首先检查两个节点是否都是原子节点或广义表节点,然后分别对这两种情况进行比较。

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

满意答案

00e27ab806e4881f8254fe7ae8741834.png

w04230560

2016.04.26

00e27ab806e4881f8254fe7ae8741834.png

采纳率:43%    等级:5

已帮助:158人

试编写判别两个广义表是否相等的递归算法。

广义表类型GList的定义:

[cpp] view plain copy

typedef enum {ATOM,LIST} ElemTag;

typedef struct GLNode{

ElemTag tag;

union {

char atom;

struct {

GLNode *hp, *tp;

} ptr;

}un;

} *GList;

实现的函数如下:

[cpp] view plain copy

Status Equal(GList A, GList B)

/* 判断广义表A和B是否相等,是则返回TRUE,否则返回FALSE */

{

if(A -> tag == ATOM && B -> tag == ATOM){

//当都为原子节点ATOM时

if(A -> un.atom == B -> un.atom)

return TRUE;

else

return FALSE;

}else if(A -> tag == LIST && B -> tag == LIST){

//当都为广义表节点LIST时

if(Equal(A -> un.ptr.hp,B -> un.ptr.hp) && Equal(A -> un.ptr.tp,B -> un.ptr.tp))

//递归判断表头节点是否相等,表尾节点是否相等

return TRUE;

else

return FALSE;

}

}追问: 这好像是C语言的。。。我要的是Java

追答: 但算法可以参考啊,你难道不会自己改吗

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值