#include<stdio.h> #include<iostream.h> #include<stdlib.h> #include<malloc.h> typedef char ElemType; typedef struct stack { ElemType data; struct stack *top; }LinkStack; int InitStack(LinkStack *&ls) { ls=NULL; return 1; } int ClearStack(LinkStack *&ls) { LinkStack *p; if(ls==NULL) return 0; while(ls!=NULL) { p=ls; ls=p->top; free(p); } return 1; } int StackEmpty(LinkStack *ls) { if(ls==NULL) return 1; else return 0; } int StackLength(LinkStack *ls) { int i=0; LinkStack *p=ls; while(p!=NULL) { p=p->top; i++; } return i; } ElemType GetTop(LinkStack *ls) { ElemType e; if(ls==NULL) return 0; e=ls->data; return e; } int Push(LinkStack *&ls,ElemType e) { LinkStack *p; p=new struct stack[sizeof(LinkStack)]; p->data=e; p->top=ls; ls=p; return 1; } int Pop(LinkStack *&ls,ElemType &e) { LinkStack *p; if(ls==NULL) return 0; else { p=ls; e=p->data; ls=p->top; free(p); } return 1; } //8. 访问栈中元素 void StackPrint(LinkStack *ls) { LinkStack *p=ls; if(ls==NULL) return ; while(p!=NULL) { cout<<p->data<<" "; p=p->top; } } //9. 写一算法,利用栈操作判断一字符串是否是回文。 int huiwen(ElemType str[]) { int i=0; ElemType ch,temp; LinkStack *ls; InitStack(ls); while((ch=str[i++])!='\0') Push(ls,ch); i=0; while(!StackEmpty(ls)) { Pop(ls,temp); if(temp!=str[i++]) return 0; } return 1; } //10. 利用栈的基本信息,编写一个算法输入若干整数,以0标识输入结束。然后按与输入相反的次序输出这些数。 int Reverse() { ElemType ch; LinkStack *ls; InitStack(ls); cout<<"请输入你要输入的整数:"; cin>>ch; while(ch!=48) { Push(ls,ch); cin>>ch; } while(!StackEmpty(ls)) { Pop(ls,ch); cout<<ch<<" "; } return 1; } //12. 利用栈进行括号匹配检验。 int Match(char str[]) { int i=0; LinkStack *ls; InitStack(ls); ElemType ch,e; while(str[i]!='\0') { if(str[i]=='('||str[i]=='[') { Push(ls,str[i]); ch=GetTop(ls); } else if(ch=='('&&str[i]==')') { Pop(ls,e);ch=GetTop(ls);} else if(ch=='['&&str[i]==']') { Pop(ls,e);ch=GetTop(ls);} else return 0; i++; } if(StackEmpty(ls)) return 1; else return 0; } void main(){ cout<<endl<<"括号匹配:"<<endl; ElemType str2[]="[[[]()()]]()([])(([]))"; cout<<Match(str2); } 这是我编写的关于如何判断括号配对的程序,我觉得应该没什么问题,可总是不能出来结果,还请知道的人 告诉小弟一声,或者大家还有什么别的方法现实,来分享一下吧!
括号配对算法
最新推荐文章于 2024-01-28 08:05:09 发布