社区
数据结构与算法
帖子详情
有关严蔚敏的数据结构
yun_5025
2005-08-05 08:36:47
习题集5.36广义表输出的递归算法
书后解答中说:
以下递归算法是典型的错误
if(Ls)
{
printf('(');
if(!Ls->tag) printf(Ls->atom);
else
{
P(Ls->ptr.hp);
printf(',');
P(Ls->ptr.tp);
}
printf('(');
}
为什么是典型错误?
...全文
191
10
打赏
收藏
有关严蔚敏的数据结构
习题集5.36广义表输出的递归算法 书后解答中说: 以下递归算法是典型的错误 if(Ls) { printf('('); if(!Ls->tag) printf(Ls->atom); else { P(Ls->ptr.hp); printf(','); P(Ls->ptr.tp); } printf('('); } 为什么是典型错误?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenzhichao2008
2005-08-10
打赏
举报
回复
if(!Ls- >tag) printf(Ls- >atom);
這一句錯了,例一個廣義表為:a,b,(c,e,f),g
那樣打印冊來是不是:(a
因此改為:
if(Ls)
{
if(!Ls- >tag)
{
printf(Ls- >atom);
printf(',');
P(Ls- >下一個結點);
}
else
{
printf('(');
P(Ls- >ptr.hp);
printf(',');
P(Ls- >ptr.tp);
printf(')');
}
}
chenzhichao2008
2005-08-09
打赏
举报
回复
能否将Ls的结构体放上来看看,
就递归本身,该题是没有错误
yun_5025
2005-08-09
打赏
举报
回复
原题:
5.36⑤ 试按教科书5.5节图5.8所示存储结构,编写按上题描述的格式输出广义表的递归算法。
完整的书后答案解释:
5.36 注意以下形式的递归算法是典型的错误:设过程名为P,存储结构如教科书图5.8所示结构形式:
if(Ls)
{
printf('(');
if(!Ls- >tag) printf(Ls- >atom);
else
{
P(Ls- >ptr.hp);
printf(',');
P(Ls- >ptr.tp);
}
printf(')');
}
说明:
"上题描述的格式"是指:
假设广义表按如下形式的字符串表示:(a1,a2,...,an)n>=0其中ai或为单字母表示的原子,或为广义表;n=0时为只含空格字符的空表( ).
5.5节图5.8所示存储结构是指:
//―――――广义表的头尾链表存储表示―――――
typedef enum {ATOM,LIST}ElemTag; //ATOM==0;原子,LIST==1:子表
typedef struct GLNode
{
ElemTag tag; //公共部分,用于区分原子结点和表结点
union //原子结点和表结点的联合部分
{
AtomType atom; //atom是原子结点的值域,AtomType由用户定义
struct
{
struct GLNode *hp,*tp;
}ptr; //ptr是表结点的指针域,ptr.hp和ptr.tp分别指向表头和表尾
};
}*GList; //广义表类型
问题:
为什么是典型错误?
yun_5025
2005-08-09
打赏
举报
回复
原题:
5.36⑤ 试按教科书5.5节图5.8所示存储结构,编写按上题描述的格式输出广义表的递归算法。
完整的书后答案解释:
5.36 注意以下形式的递归算法是典型的错误;设过程名为P,存储结构如教科书图5.8所示结构形式:
if(Ls)
{
printf('(');
if(!Ls->tag) printf(Ls->atom);
else
{
P(Ls->ptr.hp);
printf(',');
P(Ls->ptr.tp);
}
printf('(');
}
说明:
"上题描述的格式"是指:
假设广义表按如下形式的字符串表示:(a1,a2,...,an)n>=0其中ai或为单字母表示的原子,或为广义表;n=0时为只含空格字符的空表( ).
5.5节图5.8所示存储结构是指:
//―――――广义表的头尾链表存储表示―――――
typedef enum {ATOM,LIST}ElemTag; //ATOM==0;原子,LIST==1:子表
typedef struct GLNode
{
ElemTag tag; //公共部分,用于区分原子结点和表结点
union //原子结点和表结点的联合部分
{
AtomType atom; //atom是原子结点的值域,AtomType由用户定义
struct
{
struct GLNode *hp,*tp;
}ptr; //ptr是表结点的指针域,ptr.hp和ptr.tp分别指向表头和表尾
};
}*GList; //广义表类型
问题:
为什么是典型错误?
Kvci
2005-08-08
打赏
举报
回复
看看代码就错了啊
什么时候跳出去?
chenzhichao2008
2005-08-08
打赏
举报
回复
个人觉得没错
只是后面一个printf('(');
应改为printf(')');
yun_5025
2005-08-08
打赏
举报
回复
这是类c代码,不是c源码
printf('(')是个笔误,不好意思^_^
yun_5025
2005-08-07
打赏
举报
回复
少了一句
设过程明为P
我只抄了递归内部的部分
xiaocai0001
2005-08-07
打赏
举报
回复
没看明白是怎么递归起来的
楼主,代码是不是贴错了?
严蔚敏
数据结构
代码
严蔚敏
数据结构
代码
严蔚敏
数据结构
代码
严蔚敏
数据结构
代码
严蔚敏
数据结构
代码
严蔚敏
数据结构
动态演示
数据结构
动态演示可以动态的演示
严蔚敏
数据结构
中所有的
数据结构
类型。对大家更好的掌握相应的
数据结构
类型有很大的帮助!
图解
数据结构
与算法
【为什么学习
数据结构
与算法】 程序=
数据结构
+算法。
数据结构
和算法是程序的基础,没有系统地学习过
数据结构
和算法的程序员只能称作是coder,知道我们写的代码使用了什么
数据结构
,它的特征是什么。...
清华大学
严蔚敏
数据结构
PPT全套课件
清华大学
严蔚敏
数据结构
PPT全套课件,对于自学、考研
数据结构
有很大帮助。
严蔚敏
数据结构
数据结构
自己收集的
严蔚敏
数据结构
数据结构
c语言 教材、答案和课件
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章