项目4.1 -- 广义表的原子统计
/*
* Copyright (c) 2015, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:main.cpp,glist.cpp,glist.h
* 作者:朱国荣
* 完成日期:2015年11月02日
* 版本号:vc++6.0
*
* 问题描述:设计算法,求出给定广义表g中的原子个数和最大原子
* 输入描述:
* 程序输出:
*/
代码:
头文件glist.h是广义表算法库建设的成果,见链接…
#include <stdio.h>
#include "glist.h"
int atomnum(GLNode *g) //求广义表g中的原子个数
{
if (g!=NULL)
{
if (g->tag==0)
return 1+atomnum(g->link);
else
return atomnum(g->val.sublist)+atomnum(g->link);
}
else
return 0;
}
ElemType maxatom(GLNode *g) //求广义表g中最大原子
{
ElemType max1,max2;
if (g!=NULL)
{
if (g->tag==0)
{
max1=maxatom(g->link);
return(g->val.data>max1?g->val.data:max1);
}
else
{
max1=maxatom(g->val.sublist);
max2=maxatom(g->link);
return(max1>max2?max1:max2);
}
}
else
return 0;
}
int main()
{
GLNode *g;
char *s="(b,(b,a,(#),d),((a,b),c((#))))";
g = CreateGL(s);
DispGL(g);
printf("\n");
printf("原子个数 :%d\n", atomnum(g));
printf("最大原子 :%c\n", maxatom(g));
return 0;
}
运行结果:
项目4.1 -- 广义表的原子统计相关推荐
- 【数据结构】广义表的存储结构及基本运算(C语言)
目录 1. 广义表基本概念 2. 广义表的存储结构 2.1 头尾链表存储结构 2.2 同层结点链存储结构 3. 广义表的基本运算 3.1 求表头.表尾 3.2 求长度.深度 3.3 统计原子数目 3. ...
- 数据结构之【数组和广义表】复习题
第 4 章 数组和广义表 一.选择题 1. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A666 ...
- 数据结构05数组和广义表
第五章 数组 和 广义表 数组和广义表可以看成是线性表在下述含义上的扩展:表中的数据元素本身也是一个数据结构. 5.1 数组的定义 n维数组中每个元素都受着n个关系的约束,每个元素都有一个直接后继元素 ...
- 《数据结构》第四章串,数组和广义表
<数据结构>第四章 文章目录 <数据结构>第四章 4.1 串的定义 4.2 案例引入 4.3 串的类型定义,存储结构及其运算 4.3.1 串的抽象类型定义 4.3.2的存储结构 ...
- 数据结构(10)广义表的介绍与代码实现(c语言)
文章目录 1.概念 2.图解 3.广义表的实现 1. 广义表的结点类型 2. 创建广义表 3. 输出广义表运算算法 4. 求广义表长度运算算法 5. 求广义表深度运算算法 6. 复制广义表运算算法 7 ...
- 什么是广义表、广义表及定义详解
前面讲过,数组即可以存储不可再分的数据元素(如数字 5.字符 'a'),也可以继续存储数组(即 n 维数组). 但需要注意的是,以上两种数据存储形式绝不会出现在同一个数组中.例如,我们可以创建一个整形 ...
- noj14求广义表深度
广义表理论上很好理解,但是我感觉对我来说上手还有点困难(还是太菜). 先看广义表的一些定义吧 1 )什么是广义表 广义表,又称列表,也是一种线性存储结构,既可以存储不可再分的元素,也可以存储广义表,记 ...
- 第八周实践项目9 算法库——广义表
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...
- 第九周项目四----广义表算法库及应用1
/*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月11日 问题描述: 广义算法库 输入描述:无 输出描述:若干数据 */ 头文件 glist.h #ifndef GLIST_H_IN ...
最新文章
- MacroMedia FreeHand中文版
- boost::test模块测试参数化测试
- Ext.tab.Panel页签
- leetcode 594. Longest Harmonious Subsequence | 594. 最长和谐子序列
- 用 Shell 快速写一个嵌入式测试框架
- Java访问对象的属性和行为
- JavaScript性能优化【下】--性能优化的具体方式
- 深度学习(三十四)对抗自编码网络-未完待续
- 程序闪退_苹果APP日常使用时一直闪退怎么办?
- matplotlib绘制子图,自定义子图大小并分别绘图
- IntelliJ IDEA引入项目之后不显示 解决办法
- 大疆aeb连拍_大疆进军运动相机领域,发布OSMO?ACTION,对标GoPro
- 大麦盒子无线服务器连接超时,大麦盒子游戏联网失败怎么办
- win7网络不显示共享计算机,win7系统看不到局域网其他计算机怎么办
- Fw cs6破解版下载 准备学前端的同学们应该会用到的神器
- tree是不是动词_tree是什么意思!
- 母版页已经有from 一页只能有一个服务器端 Form 标记
- STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现
- win10系统的计算机C盘在哪,win10系统只有一个C盘怎么解决
- SkinH皮肤使用教程,及皮肤效果测试工具