用栈实现形如a+b&b+a@的中心对称字符的检验
来源:互联网 发布:淘宝怎样改店名 编辑:程序博客网 时间:2024/04/29 20:20
用栈实现形如a+b&b+a@的中心对称字符的检验
将&前字符依次入栈与@前字符进行比较即可,下面是方法
Status match(char *a){ //match方法SqStack s;char c;char *p=a;InitStack(s);while(*p!='&'){ //当字符不为'&'时,执行入栈操作 Push(s,*p); p++;}p++;while(*p!='@'){ /*当字符不为'@'时,依次取栈顶元素与指针所对字符比较。 若不一致,返回FALSE */ Pop(s,c); if(c!=*p) return FALSE; p++;}if(StackEmpty(s)) //若空栈返回TURE return TURE;else return FALSE;}
执行该方法,返回真则中心对称,否则不是。下面贴一下用到的基本操作:
Status InitStack(SqStack &s){ s.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!s.base)exit(OVERFLOW); s.top=s.base; s.stacksize=STACK_INIT_SIZE; return OK;}Status GetTop(SqStack s,SElemType &e){ if(s.top=s.base) return ERROR; e=*(s.top-1); return OK;}Status Push(SqStack &s,SElemType e){ if(s.top-s.base>=s.stacksize){ s.base=(SElemType *)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!s.base)exit(OVERFLOW); s.top=s.base+s.stacksize; s.stacksize+=STACKINCREMENT; } *s.top++ =e; return OK;}Status Pop(SqStack &s,SElemType &e){ if(s.top==s.base)return ERROR; e=*--s.top; return OK;}Status StackEmpty(SqStack &s){ if(s.top==s.base)return TURE; else return FALSE;}
阅读全文
0 0
- 用栈实现形如a+b&b+a@的中心对称字符的检验
- 用队列实现形如a+b@b+a#的中心对称字符的检验
- 用栈实现中心对称符号的检验!一
- 请输出开如"1A 2B 3C ........26Z"的字符序列,用集合实现
- 如何用宏定义的方式实现MAX(A,B),MAX(A,B,C),MAX(A,B,C,D)
- 用PYTHON实现一个扁平化的字典,如{'a': {'b': '1'}}扁平化处理后变成{'a.b': 1}?
- 高精度 a*b的实现
- a&&b与a&b的区别
- A+B的问题
- XTU的A+B
- 人见人爱的a^b
- 大数的a+b
- A/B的困扰
- 不一样的A+B
- 恶心的A+B
- 困难的A+B
- A-B的绝对值
- A+B的问题
- 服务器网络编程注意事项
- CALayer Tips 1
- 推荐一个linux命令行提示工具-fish
- 上传文件
- MySQL性能分析及explain的使用
- 用栈实现形如a+b&b+a@的中心对称字符的检验
- ios :一个Label 显示两种颜色的写法
- 无聊的小片段
- 【队内胡策】2017.11.2
- Android开发中的处理时间戳等工具类
- WEB打印控件Lodop学习-1
- Android 常用UI控件收藏
- Android6.0权限和targetSdkVersion之间的关系
- 【Linux学习】之 Shell初识