| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:帮我改个写好的程序,谢谢
只看楼主 加入收藏
topy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
帮我改个写好的程序,谢谢
#include "stdafx.h"

#include<stdio.h>
#include<stdlib.h>


#define stackLen 100;

typedef struct CheckStack
{
    int top_;
    int bottom_;
    char data[stackLen];
} CheckStack;

void init(CheckStack s)
{
    top_ = bottom_ = -1;
}

int empty(CheckStack s)
{
    return (top_ == bottom_);
}

int top(CheckStack s)
{
    if (empty(s)) return -1;

    return s.data[top_];
}

int push(CheckStack s, char c)
{
    if (top_ == stackLen-1) return -1;
 
    s.data[top_++] = c;  
    return 0;
}

char pop(CheckStack s)
{
    if (top_ == bottom_)  return '\0';
   
    return s.data[top_--];
}



int main()
{
    CheckStack checkStack;
    char buf[stackLen] = {0};

    init(checkStack);

    gets(buf);

    for (int i=0; i<stackLen && buf[i] != 0; i++)
    {
    switch (buf[i])
        {
            case '[':
            case '(':
                push(checkStack, buf[i]);
               
                break;
            
            case ']':
                if (top(checkStack) != '[')
                {
                    printf("此串括号匹配不合法\n");
                    return 0;
                }
               
                pop(checkStack);
            
                break;

            case ')':
                if (top(checkStack) != '(')
                {
                    printf("此串括号匹配不合法\n");
                    return 0;
                }
               
                pop(checkStack);
            
                break;
            
            defaut:
                break;
        }
    }   

    if (empty(checkStack))
        printf("匹配\n");
    else
        printf("此串括号匹配不合法\n");

    return 0;
}
/*把输入的符号读进来,如果是[,(,就直接入栈,如果是],),就判断栈顶字符是否是匹配的。、
如果不匹配,打印错误,退出;如果匹配,就把栈顶字符出栈。
全部输入完成后,最后判断栈是否为空。如果为空,就是匹配了,否则打印不匹配。*/

搜索更多相关主题的帖子: top include return bottom 
2009-10-26 10:37
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:20 
你是只想理论说明还是想让它运行,如果运行你那些出栈入栈的操作应该把它功能实际写出来,而不是只写个pop什么了。

离恨恰如春草,更行更远还生。
2009-10-26 13:04
快速回复:帮我改个写好的程序,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015756 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved