好文档 - 专业文书写作范文服务资料分享网站

数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第三章答案

天下 分享 时间: 加入收藏 我要投稿 点赞

/********************************************

题目:假设表达式中允许包含三种括号,圆括号,方括号和大括号,编写一个算法判断表达式中的括号是不是匹配 实践:狼影 时间: include <> # include <> # define size 256

//定义节点 typedef struct {

char ex[size]; int top;

}STACK;

//函数声明

STACK *init_stack(void); bool is_match(char *exp);

bool pop_stack(STACK *stack, char *ch); void push_stack(STACK *stack, char e); main() {

char exp[256];

printf(\输入表达式\\n\ scanf(\

}

//栈的初始化

STACK *init_stack(void) { }

//判断是不是匹配 bool is_match(char *exp) {

int i = 0;

STACK *stack = (STACK *)malloc(sizeof(STACK)); if(NULL == stack) { }

stack->top = -1; return stack;

printf(\内存分配失败\\n\ exit(-1); if(is_match(exp)) { } else { }

printf(\此表达式不匹配\\n\ printf(\此表达式匹配\\n\

char ch; STACK *stack; stack = init_stack();

while(exp[i] != '\\0') {

if('('==exp[i] || '['==exp[i] || '{'==exp[i]) { }

else if(')'==exp[i] || ']'==exp[i] || '}'==exp[i]) {

//线面是匹配的三种情况, switch(exp[i]) {

push_stack(stack, exp[i]);

case ')':

if(pop_stack(stack, &ch)) { } else

return false; if(ch != '(')

return false;

break;

case ']':

if(pop_stack(stack, &ch))

}

}

}

}

{ } else

return false; if(ch != '[')

return false;

break;

case '}':

if(pop_stack(stack, &ch)) { } else

return false; if(ch != '{')

return false;

break;

default:break;

i++;

if(-1 == stack->top)

return true;

else

return false;

//入栈的操作

void push_stack(STACK *stack, char e) { }

//出栈的操作

bool pop_stack(STACK *stack, char *ch) { }

/*********************************************** 输入表达式

(((1+2+3*5{{{[[[234]]]}}}))) 此表达式匹配

Press any key to continue

**********************************************/

if(-1 == stack->top)

return false; stack->top++;

stack->ex[stack->top] = e;

else { }

return true;

*ch = stack->ex[stack->top]; stack->top--;

数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第三章答案

/********************************************题目:假设表达式中允许包含三种括号,圆括号,方括号和大括号,编写一个算法判断表达式中的括号是不是匹配实践:狼影时间:include#include#definesize256//定义节点typedefst
推荐度:
点击下载文档文档为doc格式
20z7w79puq6o2vt5lzj67d82u9zjlx00ikb
领取福利

微信扫码领取福利

微信扫码分享