数据结构作业求救

数据结构最后一次作业
求救🆘🆘🆘
数据结构上机实验-7 要求:
用 C 语言实现如下功能:

  1. 手动使用 firefox 火狐浏览器将 China Daily 网站中的一个网页(如: https://www.chinadaily.com.cn/a/201712/05/WS5a277474a3107865316d4a80.html)保存成 txt 文件。
  2. 设计一个命令行下的菜单,可以通过用户输入进行如下选择:
    a) 打开上面下载的 txt 文件,并将原始文件打印在屏幕上。
    b) 链式栈:
  3. 使用链式栈删除文件中的所有超链接(如,删除 ),即删除成对出现的<号和>号,非成对出现的< >号保留,并将删除后的内容打印在屏幕上。 2) 使用链式栈删除文中所有成对出现的小括号,非成对出现的小括号保留,将删除后的内容打印在屏幕上。
  4. 使用链式栈删除文中所有成对出现的中括号。非成对出现的中括号保留,将删除后的内容打印在屏幕上。
  5. 使用链式栈删除文中所有成对出现的大括号。非成对出现的大括号保留,将删除后的内容打印在屏幕上。
  6. 保存删除后的文件。
  7. 返回上一层。
    c) 顺序表:
  8. 将删除后的内容保存到一个顺序表中。
  9. 统计顺序表中单词的数量。
  10. 删除顺序表中重复的单词。
  11. 按照字母顺序重新调整顺序表中剩余的单词存储的位置。
  12. 打印顺序表里的单词。
  13. 返回上一层。
    d) 单链表:
    1. 将删除后的内容保存到一个单链表中。
    2. 统计单链表中单词的数量。
    3. 删除单链表中重复的单词。
    4. 按照字母顺序重新调整单链表中剩余的单词存储的位置。
    5. 打印单链表里的单词。
    6. 返回上一层。
      e) 字符串的模式匹配 KMP 算法:
    7. 将删除后的内容保存到一个数组 S 中。
    8. “单次查找”,用户输入一个待查找的模式串 T。使用 KMP 算法,在正文 S 中查找模式串 T 第一次出现的位置: o 若找到,返回并打印 T 在 S 中的位置。 o 若未找到,返回并打印“未找到”。
    9. “查找全部”,用户输入一个待查找的模式串 T。使用 KMP 算法,在正文 S 中查找模式串 T 出现的位置: o 若找到,返回并打印 T 在 S 中出现的次数及每次出现的位置。 o 若未找到,返回并打印“未找到”。
    10. 返回上一层。
      f) 退出程序。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Arduino是一个开源电子平台,常用于创建交互式电子项目,如制作简单的电路。如果你想使用Arduino构建一个求救信号灯,你可以设计一个简单的LED灯闪烁电路,模拟常见的求救信号,如SOS(三次短闪,三次长闪,三次短闪)。 以下是一个基本的步骤: 1. **材料准备**: - Arduino开发板(如Uno、Nano等) - LED灯(根据你的需求选择数量,比如三个并联代表SOS) - 电阻器(用于限制电流,保护LED) - 杜邦线或面包板连接器 2. **电路连接**: - 将LED灯两端分别接到Arduino的数字引脚上,一端接5V,另一端通过电阻接到GND,形成简单的共阳极连接(如果使用共阴极LED则连接相反)。 - 如果你想实现闪烁效果,可以将每个LED灯连接到不同引脚,并编写程序控制它们轮流点亮和熄灭。 3. **编写代码**: - 使用Arduino的C语言编写代码,可以通过for循环和delay()函数来控制LED的开关和闪烁时间间隔。 - 对于SOS信号,可以编写三个部分的代码,分别控制三个LED灯的短闪、长闪和再次短闪。 ```c void setup() { // 初始化LED引脚为输出 pinMode(LED_PIN_1, OUTPUT); pinMode(LED_PIN_2, OUTPUT); pinMode(LED_PIN_3, OUTPUT); } void loop() { // 实现SOS信号的闪烁 for (int i = 0; i < 3; i++) { digitalWrite(LED_PIN_1, HIGH); // 短闪LED1 delay(500); // 例如,每次闪烁500毫秒 digitalWrite(LED_PIN_1, LOW); // 熄灭LED1 delay(500); if (i == 1) { // 长闪LED2 digitalWrite(LED_PIN_2, HIGH); delay(1000); // 例如,长闪1秒 digitalWrite(LED_PIN_2, LOW); } digitalWrite(LED_PIN_3, HIGH); // 再次短闪LED3 delay(500); digitalWrite(LED_PIN_3, LOW); delay(1000); // 等待下一组闪烁开始 } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值