TonyGJY 2018-12-01 15:06 采纳率: 33.3%
浏览 350

王浩算法问题 能帮我分析下这段程序吗,需要一个大体的程序框架分析,这个王浩算法有点儿类似于编译原理。

 int i=0;
int stepcount=1;

enum type{
    and,or,detrusion,equal,level,variable
};

struct node{
    char *s;
    type kind;
    int polar;
    node *next;
    node *child;
    int start;
};


struct step{
    step *child;
    step *brother;
    node *lhead;
    node *rhead;
    int count;
    char name[30];
};

while(i<len){                   // i<len
        if(s[i]=='|'){                //遇到 |
            if(!(s[i+1]<='Z'&&s[i+1]>='A'||s[i+1]<='z'&&s[i+1]>='a')&&s[i+1]!='1'&&s[i+1]!='0'&&s[i+1]!='('&&s[i+1]!='!'||i==0)
                return 0;
            current=(node*)malloc(sizeof(node));
            current->kind=or;
            current->s=NULL;
            current->next=NULL;
            current->child=NULL;
            current->polar=polar;
            current->start=0;

            if(last->kind==level&&last->child==NULL){
                last->child=current;
            }
            else{
                last->next=current;
            }
            last=current;
            i++;
        }
        else if(s[i]=='&'){   //遇到 &
            if(!(s[i+1]<='Z'&&s[i+1]>='A'||s[i+1]<='z'&&s[i+1]>='a')&&s[i+1]!='1'&&s[i+1]!='0'&&s[i+1]!='('&&s[i+1]!='!'||i==0)return 0;
                current=(node*)malloc(sizeof(node));
                current->kind=and;
                current->s=NULL;
                current->next=NULL;
                current->child=NULL;
                current->polar=polar;
                current->start=0;

                if(last->kind==level&&last->child==NULL){
                    last->child=current;
                }
                else{
                    last->next=current;
                }
                last=current;
                i++;
        }


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
    • ¥15 画两个图 python或R
    • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
    • ¥15 八路抢答器设计出现故障
    • ¥15 opencv 无法读取视频
    • ¥15 按键修改电子时钟,C51单片机
    • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
    • ¥20 5037端口被adb自己占了