- 博客(13)
- 收藏
- 关注
原创 NJU 编译原理Project1 实验过程记录
我们需要自行设计(多叉)树结点的数据结构,以及后序建树(采用自底向上的方式)用到的插入算法、打印树用到的遍历算法。结点的数据结构除了指向它孩子和弟弟的指针外,还应该包括(line:当前节点所在行号、type:对不同类型的结点输出格式不同、name:当前节点的名称、val:当前节点的值)注意区分这里val的值和yylval的值,前者其实是yytext对应的字符串的实际意义,后者是一个token作为语法分析树的一个结点而拥有的值。重点正则表达式的书写,即给你的测试文件所有可能出现的单词用正则表达式概括出来。
2023-03-30 21:04:04
2279
原创 [STL的使用]C++remove()函数STL源码浅析
PAT A1060. 该题目练习string的使用. 其中涉及到字符串的删除字符,这里结合源码加深理解.move的功能: 将右值强转为左值。推荐b站的一个视频(b站up@remove()函数。
2023-03-04 22:44:13
127
原创 [STL的使用]PAT A1039 A1047
熟悉CPPSTL库,这两道题主要是vector容器的使用。问题抽象为学生和课程之间的映射,利用vector实现按学生(或按课程)输出这些映射关系。由于空间限制,无法构造一张学生×课程的二维表(40000×2500 = 100000000 = 100M)。所以需要用到动态的数组,由此用到vector。A1047中,直接的想法是容器中存放学生姓名,但这样做导致后边对字符串类型string排序,对时间消耗太大。把string排序转化为字符数组char*排序。自定义一个哈希函数,将字符串映射为哈希值。
2023-03-02 01:24:24
84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人