zoukankan      html  css  js  c++  java
  • uva11234 Expressions

    题意:给定一个序列,小写字母代表的是数字,大写字母代表的是计算符号,这个序列以后序表达式输出,让你求出这个序列的广搜的逆序列

    解题思路:使用栈构建表达式树,然后广搜求解

    解题代码:

    // File Name: uva11234.c
    // Author: darkdream
    // Created Time: 2013年05月16日 星期四 19时18分02秒
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    #include<ctype.h>
    struct node
    {
      char c;
      struct node *right ,*left;
    };
    int main(){
    
       //freopen("/home/plac/problem/input.txt","r",stdin);
       //freopen("/home/plac/problem/output.txt","w",stdout);
       int t;
       scanf("%d\n",&t);
       while(t--)
       {
         char str[10005];
         gets(str);
         int k = strlen(str);
         struct node nodes[10005];
         struct node *hehe[10005],*head,*p;
         for(int i = 0; i < k ;i ++)
         {
            nodes[i].c = str[i];
            nodes[i].right = nodes[i].left  = NULL;
         }
         int j  = -1 ;
         for(int i = 0 ;i < k; i ++)
         {
               j++;
               hehe[j] = &nodes[i];
            if(isupper(hehe[j]->c))
            {
                hehe[j]->right = hehe[j-2];
                hehe[j]->left = hehe[j-1];
                hehe[j-2] = hehe[j];
                hehe[j-1] = NULL;
                hehe[j] = NULL;
               j = j -2;
            }
         }
        int up = 1, low = 0;
        while(low < up)
        {
           if(hehe[low]->right != NULL)
            hehe[up++] = hehe[low]->right;
           if(hehe[low]->left != NULL)
            hehe[up++] = hehe[low]->left;
           low++;
        }
        for(int i = up-1; i >= 0 ;i--)
            printf("%c",hehe[i]->c);
        printf("\n");
         
       }
    return 0 ;
    }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    docker常用命令
    redis常用命令
    Spring boot redis自增编号控制 踩坑
    docker 安装 nginx
    Linux常用命令记录
    leetcode-120. 三角形最小路径和
    leetcode-229.求众数(二)
    leetcode-169.求众数
    冒泡排序学习笔记
    快速排序学习笔记
  • 原文地址:https://www.cnblogs.com/zyue/p/3082479.html
Copyright © 2011-2022 走看看