第九週実践項目4—広義表算法庫及び応用(2)
1592 ワード
/*
ヘッダファイルコードは【一般化テーブルアルゴリズムライブラリ及び応用(1)】を参照する.
コード:
Copyright (c)2015,
All rights reserved.
: 4-2.cbp
:
:2015 11 14
:v1.0
:(1) , g 。
(2) , g 。
:
:
*/
ヘッダファイルコードは【一般化テーブルアルゴリズムライブラリ及び応用(1)】を参照する.
コード:
#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("
");
printf(" :%d
", atomnum(g));
printf(" :%c
", maxatom(g));
return 0;
}
:
<img src="http://img.blog.csdn.net/20151115190442521" alt="" />