西工大NOJ数据结构理论——007.表达式括号与匹配(严3.19)
害怕提交次数过多,然后不再跑代码,影响成绩,所以又重新创建了两个号来测这道题。
结果全都正确,但就是一直”WA",然后Debug了近5个小时才把"WA"改成“AC",没想到是错在了这里!!!:
char s[1000];
fgets(s,500,stdin);
char *ptrs=s;while(*ptrs!='\n'){
//No!
while(*ptrs!='\0'){
//Yes!
有2种解法:
1.顺序栈
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct SeqList{char s[1000];int top;
}SeqList;void PushStack(SeqList *pseq,char c){pseq->top++;pseq->s[pseq->top]=c;
}void PopStack(SeqList *pseq){pseq->top--;
}int main(){char s[1000];fgets(s,500,stdin);char *ptrs=s;SeqList *seq;seq->top=-1;while(*ptrs!='\0'){switch(*ptrs){case '(':case '[':case '{':PushStack(seq,*ptrs);break;case ')':case ']':case '}':if(seq->top==-1){printf("no");return 0;}else if(((*ptrs)==')')&&(seq->s[seq->top]=='(')){PopStack(seq);break;}else if((*ptrs==']')&&(seq->s[seq->top]=='[')){PopStack(seq);break;}else if((*ptrs=='}')&&(seq->s[seq->top]=='{')){PopStack(seq);break;}else{printf("no");return 0;}}ptrs++;}if(seq->top=-1){printf("yes");}else{printf("no");}return 0;
}
2.链表栈
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct NODE{char c;struct NODE* next;
}NODE;
typedef struct LinkStack{struct NODE* top;
}LinkStack;void PushStack(LinkStack* plstack,char c1){NODE* p=(NODE*)malloc(sizeof(NODE));p->c=c1;p->next=plstack->top;plstack->top=p;
}void PopStack(LinkStack* plstack){NODE* temp=plstack->top;plstack->top=(plstack->top)->next;free(temp);
}int main(){char s[1000];fgets(s,500,stdin);char *ptrs=s;LinkStack* plstack=(LinkStack*)malloc(sizeof(LinkStack));plstack->top=NULL;while(*ptrs!='\0'){switch(*ptrs){case '(':case '[':case '{':PushStack(plstack,*ptrs);break;case ')':case ']':case '}':if(plstack->top==NULL){printf("no");return 0;}else if(((*ptrs)==')')&&((plstack->top)->c=='(')){PopStack(plstack);break;}else if(((*ptrs)==']')&&((plstack->top)->c=='[')){PopStack(plstack);break;}else if(((*ptrs)=='}')&&((plstack->top)->c=='{')){PopStack(plstack);break;}else{printf("no");return 0;}}ptrs++;}if(plstack->top==NULL){printf("yes");}else{printf("no");}return 0;
}
视频解析:https://live.csdn.net/v/191617
西工大NOJ数据结构理论——007.表达式括号与匹配(严3.19)相关推荐
- 西工大NOJ数据结构理论——013.以十字链表为存储结构实现矩阵相加(严5.27)
我第一下拿到这个题目,第一反应就是先定义好数据结构,然后构建好十字链表基础操作的函数,也就是"创插遍历"这些操作.下面是我的定义和函数操作. typedef int ElemT ...
- 西工大NOJ数据结构理论——021.逆波兰表达式(严7.38)
这道题我参考的是(80条消息) 『西工大-数据结构-NOJ』 021-逆波兰表达式(耿7.38) 『西北工业大学』__LanXiu的博客-CSDN博客 (准确来说是快期末考试了,所以各科老师都在疯 狂 ...
- 西工大NOJ数据结构理论——017.输出以二叉树表示的算术表达式(严6.51)
(17条消息) 『西工大-数据结构-NOJ』 017-输出以二叉树表示的算术表达式(耿6.51) 『西北工业大学』__LanXiu的博客-CSDN博客 上面是我参考的一位学长的博客. 先序建立二叉树, ...
- 西工大NOJ数据结构理论——014.求广义表深度(严5.30)
第一下拿到这道题,我的脑袋轰一下就大了.如果说用"括号匹配"来做的话,这其实很简单.但是如果要用广义表来做的话,难度哗哗哗的就涨上来了.为什么呢?首先,要把读入的字符串存到广义表里 ...
- 西工大NOJ数据结构理论——015.建立二叉树的二叉链表存储结构(严6.70)
我相信,大家都已经了解了这道题的背景,以及明白了我们需要做的事情. 对于这道题的背景,相信大家都熟悉,所以就不说了. 关于我们需要做的事情,大家也已经有了自己的思路.所以,我只在下面简短的写一写我的思 ...
- 西工大NOJ数据结构理论——018.建立二叉树的二叉链表(严6.65)
刚点开这道题以后,我的反应是: 1.打开老师发的PPT:DS-Chap6,然后翻到第70页: 2.跟着图解,自己照着画了三四遍(其实是抄了三四遍: 3.然后自己出了一个比较简单的题: 先序:ABDCE ...
- 西工大NOJ数据结构理论——010.k阶斐波那契数列(严3.32)
k阶斐波那契序列定义:第k和k+1项为1,前k - 1项为0,从k项之后每一项都是前k项的和 k=2时,斐波那契序列为:0,1,1,2,3,5,8,13... k=3时,斐波那契序列为:0,0,1,1 ...
- 西工大NOJ数据结构理论——001.顺序表的插入运算(耿2.4)
#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct NODE {int n ...
- 西工大NOJ数据结构理论——016.计算二叉树叶子结点数目(耿6.14)
一.初级思路 拿到题之后的好习惯--先在纸上写思路: 1.构建二叉树: char* BinTreeBuilding(PBinTreeNode ptr_node,char *ptr_str){//创建二 ...
最新文章
- 江苏谋定特色小镇-农业大健康·万祥军:旅游理念经营产业
- VS 2010 开发 ActiveX 自动升级篇
- python随机数种子通俗_随机数种子random.seed()理解
- 服务器如何安装应用程序,第四节 服务器端应用程序安装
- windows 平台下,运用 Python 进行简单的文件操作需要用到的函数
- opencv读取usb摄像头_2020 款 11寸 iPad Pro 深度摄像头 RGBD 视频流可视化
- 各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWeb开发)!!!...
- 网络流之最小点权覆盖和最大点权独立集学习
- node.js的C++入门
- kubernetes视频教程笔记 (30)-安全-鉴权Authorization
- roc-auc_AUC-ROC技术的局限性
- 苹果id登陆不上去怎么回事_创建苹果id是出现请联络iTunes支持人员完成交易是怎么回事?...
- gh-ost学习笔记 试验代码学习
- 青少年计算机编程赛,青少年编程竞赛汇总
- LightOJ 1274 Beating the Dataset
- 我们为什么要使用室内定位技术?
- 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度
- Mosaicking to Distill Knowledge Distillation from Out-of-Domain Data
- 云服务器的购买及搭建
- 贼好用的六款 Linux 远程连接工具介绍
热门文章
- Verilog 三种计数器写法
- 【黏住用户的不是小红书,而是它背后的那些人】
- 桑基图可视化图表使用技巧全解析
- 文件包含漏洞—allow_url_fopen和allow_url_include详解
- [转载]命令行也强大之下载迅雷资源的方法
- ANSYS二次开发:Python解析ansys fluent结果文件
- Windows下,Sublime text 在GoSublime中支持goimports
- 基于PHP的客户分销商管理系统
- python里面如何实现元组和列表的转换_python列表和元组相互转换
- 提升研发质量的三个办法