第九周项目4-广义表算法库及应用(2)

来源:互联网 发布:中文域名转码工具 编辑:程序博客网 时间:2024/06/05 11:58
问题描述及代码
/*    *烟台大学计控学院     *作    者:张雯婧*完成日期:2016年10月24日 *问题描述:设计算法,求出给定广义表g中的原子个数和最大原子 */  
glish.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中最大原子 
glish.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中最大原子  
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;  }  
运行结果

知识点总结:

广义表的基本运算


0 0