/*  
* 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 -- 广义表的原子统计相关推荐

  1. 【数据结构】广义表的存储结构及基本运算(C语言)

    目录 1. 广义表基本概念 2. 广义表的存储结构 2.1 头尾链表存储结构 2.2 同层结点链存储结构 3. 广义表的基本运算 3.1 求表头.表尾 3.2 求长度.深度 3.3 统计原子数目 3. ...

  2. 数据结构之【数组和广义表】复习题

                          第 4  章  数组和广义表 一.选择题 1. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A666 ...

  3. 数据结构05数组和广义表

    第五章 数组 和 广义表 数组和广义表可以看成是线性表在下述含义上的扩展:表中的数据元素本身也是一个数据结构. 5.1 数组的定义 n维数组中每个元素都受着n个关系的约束,每个元素都有一个直接后继元素 ...

  4. 《数据结构》第四章串,数组和广义表

    <数据结构>第四章 文章目录 <数据结构>第四章 4.1 串的定义 4.2 案例引入 4.3 串的类型定义,存储结构及其运算 4.3.1 串的抽象类型定义 4.3.2的存储结构 ...

  5. 数据结构(10)广义表的介绍与代码实现(c语言)

    文章目录 1.概念 2.图解 3.广义表的实现 1. 广义表的结点类型 2. 创建广义表 3. 输出广义表运算算法 4. 求广义表长度运算算法 5. 求广义表深度运算算法 6. 复制广义表运算算法 7 ...

  6. 什么是广义表、广义表及定义详解

    前面讲过,数组即可以存储不可再分的数据元素(如数字 5.字符 'a'),也可以继续存储数组(即 n 维数组). 但需要注意的是,以上两种数据存储形式绝不会出现在同一个数组中.例如,我们可以创建一个整形 ...

  7. noj14求广义表深度

    广义表理论上很好理解,但是我感觉对我来说上手还有点困难(还是太菜). 先看广义表的一些定义吧 1 )什么是广义表 广义表,又称列表,也是一种线性存储结构,既可以存储不可再分的元素,也可以存储广义表,记 ...

  8. 第八周实践项目9 算法库——广义表

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  9. 第九周项目四----广义表算法库及应用1

    /*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月11日 问题描述: 广义算法库 输入描述:无 输出描述:若干数据 */ 头文件 glist.h #ifndef GLIST_H_IN ...

最新文章

  1. MacroMedia FreeHand中文版
  2. boost::test模块测试参数化测试
  3. Ext.tab.Panel页签
  4. leetcode 594. Longest Harmonious Subsequence | 594. 最长和谐子序列
  5. 用 Shell 快速写一个嵌入式测试框架
  6. Java访问对象的属性和行为
  7. JavaScript性能优化【下】--性能优化的具体方式
  8. 深度学习(三十四)对抗自编码网络-未完待续
  9. 程序闪退_苹果APP日常使用时一直闪退怎么办?
  10. matplotlib绘制子图,自定义子图大小并分别绘图
  11. IntelliJ IDEA引入项目之后不显示 解决办法
  12. 大疆aeb连拍_大疆进军运动相机领域,发布OSMO?ACTION,对标GoPro
  13. 大麦盒子无线服务器连接超时,大麦盒子游戏联网失败怎么办
  14. win7网络不显示共享计算机,win7系统看不到局域网其他计算机怎么办
  15. Fw cs6破解版下载 准备学前端的同学们应该会用到的神器
  16. tree是不是动词_tree是什么意思!
  17. 母版页已经有from 一页只能有一个服务器端 Form 标记
  18. STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现
  19. win10系统的计算机C盘在哪,win10系统只有一个C盘怎么解决
  20. SkinH皮肤使用教程,及皮肤效果测试工具

热门文章

  1. Linux修改网卡设置
  2. 转义序列、转义说明、运算符及其优先顺序
  3. 十大低代码开发平台排行榜,低代码开发平台哪个好用?
  4. cocos2d-x 流星划过特效
  5. Bill Joy (zz.IS2120)
  6. 【人物专访】FreeICQ的CTO龙云飞[1001]访谈
  7. D - Denouncing Mafia DFS
  8. HyperMesh快捷键、鼠标操作、键盘操作
  9. 在Windows Media Player中使用歌词插件显示歌曲歌词
  10. 为Android刷机包签名