数据结构 广义表的建立与求深度
来源:互联网 发布:少儿体育培训市场数据 编辑:程序博客网 时间:2024/05/27 20:26
今天心血来潮想写一下广义表的建立与求深度,但是却写的很纠结 ,调试了很长时间,千万别随便乱用全局变量,否则在递归的时候会改变上一层同变量的值,这样的话查很长时间也检查不出来。
#include <iostream>#include <string.h>using namespace std;string s1,s2;char s3[10000];class num{ public: int tag; char atom; num *tp,*hp;};num *q;int max1,dep;int main(){ void build(string str,num *&p); int solve(num *p); int i,j,m,n,s,t; num *head; getline(cin,s1); int l=s1.size(); for(i=0,j=0;i<=l-1;i++) { if(s1[i]!=' ') { s3[j++]=s1[i]; } } s3[j]='\0'; s2=s3; build(s2,head); t=solve(head); cout<<t<<endl; return 0;}void f1(string s,string &sub){ int l=s.size(); int j,i; for(i=1,j=0;i<=l-2;i++) { s3[j++]=s[i]; } s3[j]='\0'; sub=s3;}void f2(string &s,string &hsub){ int i,j,l; int x=0; l=s.size(); for(i=0;i<=l-1;i++) { if(s[i]=='(') { x+=1; }else if(s[i]==')') { x-=1; } if(s[i]==','&&x==0) { break; } } x=i-1; for(i=0,j=0;i<=x;i++) { s3[j++]=s[i]; } s3[j]='\0'; hsub=s3; for(i=x+2,j=0;i<=l-1;i++) { s3[j++]=s[i]; } s3[j]='\0'; s=s3;}void build(string str,num *&p){ string sub,hsub; if(str=="()") { p=NULL; }else { p=new(num); if(str.size()==1) { p->tag=1; p->atom=str[0]; }else { p->tag=0; f1(str,sub); do { f2(sub,hsub); build(hsub,p->hp); if(sub.size()>0) { q=new(num); q->tag=0; p->tp=q; } }while(sub.size()>0); p->tp=NULL; } }}int solve(num *p){ if(!p) { return 1; }else if(p->tag==1) { return 0; } for(max1=0;p;p=p->tp) { dep=solve(p->hp); if(dep>max1) { max1=dep; } } return max1+1;}
- 数据结构 广义表的建立与求深度
- 广义表的建立与求深度
- 数据结构_数组与广义表_广义表的建立、遍历、复制、求深度
- 广义表求深度
- 广义表的创建,遍历,求深度
- 广义表的存储结构(广义表的递归算法,复制广义表,求广义表的深度)
- 广义表的建立与基本操作
- 广义表的建立与基本操作
- 广义表的建立与一般操作
- 数据结构实验之二叉树的建立与遍历,求二叉树深度
- 【数据结构】广义表的默认成员函数、深度、大小、打印
- 广义表求长度和深度C++
- 广义的数据结构与算法
- 建立广义表的算法
- 广工数据结构5.30③ 试按表头、表尾的分析方法重写求广义表 的深度的递归算法。
- 9. 广义表的建立与基本操作
- 广义表的建立与一般操作C\C++
- 8. 广义表的建立与基本操作
- Android UI库及组件推荐
- 微软等数据结构+算法面试100题(26)--数值的整数次方
- Windows核心编程学习文档
- 微软等数据结构+算法面试100题(27)--颠倒栈
- 1141--Brackets Sequence
- 数据结构 广义表的建立与求深度
- UltraEdit去掉.bak备份文件
- 第4贴:电源变压器
- java串口通信
- 软件项目开发流程
- CSS选择器
- Silverlight入门:第一部分——开发工具与程序入门
- 数独解法
- shell 判断语句