没有合适的资源?快使用搜索试试~ 我知道了~
这篇文档是中山大学数据科学与计算机学院本科生王凯祺的一份关于编译器构造实验的报告,涵盖了两个实验题目。实验的主要目标是处理字符串集合,并按照特定规则进行排序和输出。 第一个实验题目要求输入一个字符串,其中的字符视为集合元素,并以升序输出不重复的字符。算法描述中提到,通过创建一个大小为256的数组`v`来标记字符串中出现过的字符。遍历字符串后,数组中的值表示相应ASCII码字符是否出现过。然后,遍历整个数组,如果某位置的值为1,则输出对应的字符。提供的程序清单实现这个逻辑,使用`scanf`读取字符串,遍历字符串并更新数组,最后遍历数组并输出字符。 第二个实验题目更复杂一些,需要处理多个字符串集合,按输入顺序输出升序且不重复的字符串集合。此题依然基于第一个实验的思路,但引入了字典树(Trie)的数据结构。每读取一个字符串,就将其视为一个集合,并使用前一个实验的逻辑构建该集合。接着,将这个集合(字符串)插入到字典树中,同时检查是否已存在相同的集合。如果集合未出现过,就输出它。程序清单中定义了`Node`结构体表示字典树节点,并使用`memset`初始化变量,然后遍历输入字符串构建字典树,并根据字典树的状态输出字符串。 两个实验都涉及到字符串处理和数组操作,以及基本的字符集(ASCII码)知识。在编程实现上,它们使用了C++的标准库`<bits/stdc++.h>`,包括`std::cin`、`std::cout`和`std::memset`等函数。此外,实验还涉及到了数据结构(字典树)的应用,这是编译原理和数据结构课程中的常见内容。在实际编程中,这些技能对于处理文本数据和构建高效字符串处理算法非常重要。
资源详情
资源评论
资源推荐
中山大学数据科学与计算机学院本科生实验报告
课程名称:编译器构造实验 任课教师:陈炬桦 教学助理(TA):
学年度
2018-2019
学期
第二学期
年级
2016级
专业(方
向)
计算机科学与技术
学号
16337233
姓名
王凯祺
电话
13434386182
Email
Wangkq3@mail2.sysu.edu.cn
开始日
期
2019/3/1
完成日
期
2019/3/1
1. 实验题目
1.1 Description
输入一个字符串,每个字符为一个元素,用一个字符串存放集合,集合中元素用升序并输出。
1.2 Input
accbc
1.3 Output
abc
2. 算法描述(介绍程序模块功能;流程图)
开一个大小为 256 的数组。将字符串遍历一遍,
将出现的字符在数组里标记。最后从 0 到 255 遍
历整个数组,若被标记则输出。
刘璐璐璐璐璐
- 粉丝: 36
- 资源: 326
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0