第9周—项目4(2)广义表的原子统计
2015-11-01 18:04
323 查看
问题描述及代码:
(1)glist.h
(2)glist.cpp
(3)main.cpp
运行结果:
![](https://img-blog.csdn.net/20151101184819051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
知识点总结:
广义表的基本运算
/* *烟台大学计控学院 *作 者:杨征 *完成日期:2015年11月1日 *问题描述:设计算法,求出给定广义表g中的原子个数和最大原子 */
(1)glist.h
typedef char ElemType; typedef struct lnode { int tag; //节点类型标识 union { ElemType data; //原子值 struct lnode *sublist; //指向子表的指针 } val; struct lnode *link; //指向下一个元素 } GLNode; //广义表节点类型定义 int GLLength(GLNode *g); //求广义表g的长度 int GLDepth(GLNode *g); //求广义表g的深度 GLNode *CreateGL(char *&s); //返回由括号表示法表示s的广义表链式存储结构 void DispGL(GLNode *g); //输出广义表 int atomnum(GLNode *g); //求广义表g中的原子个数 ElemType maxatom(GLNode *g); //求广义表g中最大原子
(2)glist.cpp
typedef char ElemType; typedef struct lnode { int tag; //节点类型标识 union { ElemType data; //原子值 struct lnode *sublist; //指向子表的指针 } val; struct lnode *link; //指向下一个元素 } GLNode; //广义表节点类型定义 int GLLength(GLNode *g); //求广义表g的长度 int GLDepth(GLNode *g); //求广义表g的深度 GLNode *CreateGL(char *&s); //返回由括号表示法表示s的广义表链式存储结构 void DispGL(GLNode *g); //输出广义表 int atomnum(GLNode *g); //求广义表g中的原子个数 ElemType maxatom(GLNode *g); //求广义表g中最大原子
(3)main.cpp
#include<stdio.h> #include"glist.h" 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; }
运行结果:
知识点总结:
广义表的基本运算
相关文章推荐
- HDOJ-2578-Dating with girls(1) 【排序 去重 二分】
- filter和interceptor的区别
- 程序中的@Override是什么意思?
- spring mvc常用的注解
- oracle中的分支与循环语句
- お手紙のこと。
- UVa 10114 - Loansome Car Buyer
- [leetcode 26]Remove Duplicates from Sorted Array
- JDK所有版本下载链接
- 跨域rest-service创建与访问解决方案
- request.setCharacterEncoding("UTF-8");
- HDOJ1728(限制转弯的迷宫问题)
- CSS3之2D变形
- Fragment介绍:
- Fragment源码阅读笔记
- C- 流程控制(顺序结构,选择结构,循环结构)
- 黑马程序员_正则表达式的一些总结
- [leetcode 107]Binary Tree Level Order Traversal II
- CSS reset的重新审视 – 避免样式重置
- G - Antiarithmetic?