广义表
来源:互联网 发布:mac apktool使用教程 编辑:程序博客网 时间:2024/05/20 06:50
#include<iostream>#include<stdlib.h>using namespace std;typedef char ElemType;typedef struct lnode{ int tag;//结点类型标识 union { ElemType data;//存放原子值 struct lnode *sublist;//指向子表的指针 }val; struct lnode *link;//指向下一个元素}GLNode; //广义表的结点类型int GLLength(GLNode *g)//求长度{ int n=0; GLNode *gl; gl=g->val.sublist; while(gl!=NULL) { n++; gl=gl->link; } return n;}int GLDepth(GLNode *g)//求深度{ GLNode *gl; int maxd=0,dep; if(g->tag==0) return 0; gl=g->val.sublist; if(gl==NULL) return 1; while(gl!=NULL) { if(gl->tag==1) { dep=GLDepth(gl); if(dep>maxd) maxd=dep; } gl=gl->link; } return(maxd+1);}GLNode *CreateGL(char *&s)//链式存储{ GLNode *g; char ch=*s++; if(ch!='\0') { g=(GLNode *)malloc(sizeof(GLNode)); if(ch=='(') { g->tag=1; g->val.sublist=CreateGL(s); } else if(ch==')') g=NULL; else if(ch=='#') g=NULL; else { g->tag=0; g->val.data=ch; } } else g=NULL; ch=*s++; if(g!=NULL) if(ch==',') g->link=CreateGL(s); else g->link=NULL; return g;}ElemType MaxAtom(GLNode *g) //求广义表g中最大的原子{ ElemType m=0,m1; //m赋初值0 while (g!=NULL) { if (g->tag==1) //子表的情况 { m1=MaxAtom(g->val.sublist); //对子表递归调用 if (m1>m) m=m1; } else { if (g->val.data>m) //为原子时,进行原子比较 m=g->val.data; } g=g->link; } return m;}int main(){ GLNode *g; char *str="(b,(b,a,(#),d),((a,b),c((#))))"; cout<<"(1)建立广义表g=(b,(b,a,(#),d),((a,b),c((#))))"<<endl; g=CreateGL(str); cout<<"(2)输出广义表g的长度"<<endl; cout<<GLLength(g)<<endl; cout<<"(3)输出广义表g的深度"<<endl; cout<<GLDepth(g)<<endl; cout<<"(4)输出广义表g的最大原子"<<endl; cout<<MaxAtom(g)<<endl; }
阅读全文
0 0
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- //广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- ueventd.rc 处理硬件设备权限和android init 对其解析
- 安卓E/CursorWindow: Failed to read row 0, column 0 from a CursorWindow which has 0 rows, 5 columns解决方案
- java小项目(文件读取)标准化考试
- NKOJ 2106 机密谍报 (并查集)
- redis简介
- 广义表
- 小白java笔记——UML介绍
- 2014-03-28-JDK环境变量配置
- 【esp8266】MCU下arduino uno添加LED开关代码示例
- js通过正表达式获取链接参数id
- populating-next-right-pointers-in-each-node(i,ii)
- ubuntu 16.04 LTS
- init.rc启动 shell脚本
- React.js入门与案例开发