广义表深度递归算法的问题
今天早起学习数据结构,在求广义表深度的递归算法上发现一个问题
--------------广义表的头尾链表存储表示--------------------------typedef enum {ATOM,LIST}ElemTag; //ATOM == 0:原子,LIST == 1:子表
typedef struct GLNode{ElemTag tag; //公共部分,用于区分原子结点和表结点union{ //原子结点和表结点的联合部分AtomType atom; //原子结点的值域struct{struct GLNode *hp,*tp;}ptr; //ptr是表结点的指针域,//ptr.hp和ptr.tp分别指向表头和表尾};
}*GList; //广义表类型------------递归算法求头尾链表存储方式的广义表深度-----------int GLsitDepth(GList L){//采用头尾链表存储结构,求广义表的深度if(!L)retrun 1; <span style="white-space:pre"> </span>//空表深度为1if(L->tag == ATOM) retrun 0; //原子深度为0 PS如果第一个结点就为原子,是否会直接跳出递归????for(max = 0,pp = L;pp;pp = pp->ptr.tp){dep = GListDepth(pp->ptr.hp); //求以pp->ptr.hp为头指针的子表深度if(dep > max){max = dep;}}retrun max + 1; //非空表的深度是各元素的深度的最大值加一
} //GListDepth
在递归算法的第4行,是否会在广义表中第一个元素是原子时直接跳出递归
That is a question!
原来在存储时,会将深度最大的表元素存入最外层的广义表中,受教了
广义表深度递归算法的问题相关推荐
- NOJ-求广义表深度-西工大数据结构
我是"计算机科学与技术"专业的一名在校本科生,这是我的第一篇博文,用词不当还请各位看官多多包涵. 这篇博文是关于西北工业大学NOJ数据结构习题中的"求广义表深度" ...
- 西工大NOJ数据结构理论——014.求广义表深度(严5.30)
第一下拿到这道题,我的脑袋轰一下就大了.如果说用"括号匹配"来做的话,这其实很简单.但是如果要用广义表来做的话,难度哗哗哗的就涨上来了.为什么呢?首先,要把读入的字符串存到广义表里 ...
- noj14求广义表深度
广义表理论上很好理解,但是我感觉对我来说上手还有点困难(还是太菜). 先看广义表的一些定义吧 1 )什么是广义表 广义表,又称列表,也是一种线性存储结构,既可以存储不可再分的元素,也可以存储广义表,记 ...
- 广义表-求广义表深度,建立广义表,复制广义表
广义表-求广义表深度,建立广义表,复制广义表 例: 广义表(a,(a,b),d,e,((i,j),k)) 求广义表的长度和深度 长度为5,深度为3 长度:有效逗号个数+1 深度:有效括号个数 求广义表 ...
- 数据结构14——求广义表深度(严5.30)
Description 试按表头.表尾的分析方法编写求广义表的深度的递归程序. Input 输入一串以'('开始,以'('结束的字符串,并且输入的左右括号必须匹配,如:(),(())-- Output ...
- 求广义表深度(严5.30)
Description 试按表头.表尾的分析方法编写求广义表的深度的递归程序. Input 输入一串以'('开始,以'('结束的字符串,并且输入的左右括号必须匹配,如:(),(())-- Output ...
- 【数据结构】NOJ014 求广义表深度
//[数据结构]NOJ014 求广义表深度 //表头-表尾表示法#include <stdio.h> #include <stdlib.h> #include <stri ...
- noj14 求广义表深度
关键是创建广义表 //求广义表深度 #include <stdio.h> #include <stdlib.h> #include <string.h>typede ...
- 【数据结构】NOJ014—求广义表深度
题目描述: 解析: 题目要求用递归做,当然这个题用栈也可以做. (1)栈 遇见一个"("就把它压入栈,遇见一个")"就出栈一个"(".最后 ...
最新文章
- HDU-1789-Doing Homework again
- CentOS文件浏览器设置
- ElasticSearch 2 (21) - 语言处理系列之单词识别
- BZOJ3627 [JLOI2014]路径规划
- linux串口编程实例_Linux 网络编程——原始套接字实例:发送 UDP 数据包
- 【目标检测】单阶段算法--YOLOv4详解
- MTK 驱动(71)---DDR进行bitflip压力测试
- mac系统虚拟机上的Linux系统的使用说明
- 基于微信小程序开发——音乐播放器
- centos7安装redis并设置开机启动
- 使用vue写一个计时器
- spring3+hibernate4配置连接池C3P0
- Alpha阶段敏捷冲刺④
- try{}里面有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
- 闵帆老师《论文写作》课程心得
- shell脚本:exit 0 和 exit 1有什么区别?他们和return不同,return是关键字,exit是一个shell函数
- 点到直线的距离公式和平行线的距离公式
- 线性代数之克莱姆法则
- pandas读取带中文的csv
- TPS54060/260调试记录