美文网首页
2019-05-12(栈应用 括号匹配 leetcode 20

2019-05-12(栈应用 括号匹配 leetcode 20

作者: 常人 | 来源:发表于2019-05-12 15:19 被阅读0次

括号匹配思路:

1、遇到左边的括号 进栈 ,
2、遇到右边的括号获取原来栈 中栈顶元素,与刚遇到的值进行匹配,匹配成功则弹栈;
重复上面的两部分

数据结构的算法如何描述(未查资料写的):

bool isValid(char * s){
InitStack(&S);
char *p = "String";" s == p"
"怎么描述左括号? = left  输入的括号 为 n"
while(*p){
if( n = left){
push(&S,left);
}else{
if(getTop()  == n.left) "这种模式需不需要判空"
pop(S,left);
else(
return  error;
)
}
p = p+1;
}
return OK;

邓俊辉版 算法描述

 算法中  ({ }) [ ]分别等,特例写入算法中;

行编辑程序

描述:接收用户从终端输入的程序或者数据,并存入用户的数据区,若没接收一个字符就存入用户的数据区 的做法显然不是最恰当的,较好的做法是,设立缓冲区 :接收用户的一行数据,而后在逐行的存入,
发现错误可以及时的更正;删除前面一个 或者清空一个栈。

void   LineEdit(){
InitStack(&S);
ch = getChar();//重终端获取第一个字符
while(ch!= EOF){
   while(ch != EOF &&ch != '\n'){
   switch(ch){
   case:'#':Pop(&S,&e);
   case:'@' x=clearStaeck(&S);
   default:Push(&S ,e)
     }
ch=getChar();//从终端获取下一个字符;
   }
将栈中的数据转入 传送至 调用过程的数据区;
 }
ClearStack(S);
if(ch!=EOF){
ch = getchar();//获取另外一行的第一个字符
}
DestoryStack(S);
}

相关文章

网友评论

      本文标题:2019-05-12(栈应用 括号匹配 leetcode 20

      本文链接:https://www.haomeiwen.com/subject/hznqaqtx.html