头文件glist.h和源文件glist.cpp代码详见第九周项目4--广义表算法库及应用1
主函数main.cpp代码:
- #include <stdio.h>
- #include "glist.h"
-
- int atomnum(GLNode *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)
- {
- 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;
- }
运算结果:
知识点总结:
广义表的运算。
学习心得:
通过利用广义表算法库解决实际问题让我认识到了广义表算法库的意义,对学习广义表有了更大的兴趣。