首页 > 其他 > 详细

栈的应用实例——平衡符号

时间:2014-03-19 11:46:16      阅读:399      评论:0      收藏:0      [点我收藏+]

检查()、[]、{}是否配对。

bubuko.com,布布扣
/* stack_balance_symbol */

#include "stack.h"
#include <stdio.h>
#include <stdlib.h>
#include <error.h>

int
main(int argc, char **argv)
{
    FILE *fp;
    stack s;
    char c;
    char ctmp;    

    if(argc != 2)
    {
        printf("usage: a.out <filename>\n");
        exit(0);
    }
    
    fp = fopen(argv[1], "r");
    if(fp == NULL)
    {
        perror("fopen");
        exit(1);
    }

    s = create_stack( 10 );
    c = fgetc(fp);
    while(c != EOF)
    {    
        switch(c)
        {
            case (:
                push(c, s);
                break;
            case ):
                ctmp = top_and_pop( s );
                if(ctmp != ()
                    printf("not match!\n");
                break;    
            case {:
                push(c, s);
                break;
            case }:
                ctmp = top_and_pop( s );
                if(ctmp != {)
                    printf("not match!\n");
                break;    
            case [:
                push(c, s);
                break;
            case ]:
                ctmp = top_and_pop( s );
                if(ctmp != [)
                    printf("not match!\n");
                break;    
        }
        c = fgetc(fp);
    }
    
    if(is_empty( s ))
        printf("match\n");
    else
        printf("not match\n");
}
bubuko.com,布布扣

测试结果:

bubuko.com,布布扣

栈的应用实例——平衡符号,布布扣,bubuko.com

栈的应用实例——平衡符号

原文:http://www.cnblogs.com/nufangrensheng/p/3610598.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!