数据结构最后一次作业
求救🆘🆘🆘
数据结构上机实验-7 要求:
用 C 语言实现如下功能:
- 手动使用 firefox 火狐浏览器将 China Daily 网站中的一个网页(如: https://www.chinadaily.com.cn/a/201712/05/WS5a277474a3107865316d4a80.html)保存成 txt 文件。
- 设计一个命令行下的菜单,可以通过用户输入进行如下选择:
a) 打开上面下载的 txt 文件,并将原始文件打印在屏幕上。
b) 链式栈: - 使用链式栈删除文件中的所有超链接(如,删除 ),即删除成对出现的<号和>号,非成对出现的< >号保留,并将删除后的内容打印在屏幕上。 2) 使用链式栈删除文中所有成对出现的小括号,非成对出现的小括号保留,将删除后的内容打印在屏幕上。
- 使用链式栈删除文中所有成对出现的中括号。非成对出现的中括号保留,将删除后的内容打印在屏幕上。
- 使用链式栈删除文中所有成对出现的大括号。非成对出现的大括号保留,将删除后的内容打印在屏幕上。
- 保存删除后的文件。
- 返回上一层。
c) 顺序表: - 将删除后的内容保存到一个顺序表中。
- 统计顺序表中单词的数量。
- 删除顺序表中重复的单词。
- 按照字母顺序重新调整顺序表中剩余的单词存储的位置。
- 打印顺序表里的单词。
- 返回上一层。
d) 单链表:- 将删除后的内容保存到一个单链表中。
- 统计单链表中单词的数量。
- 删除单链表中重复的单词。
- 按照字母顺序重新调整单链表中剩余的单词存储的位置。
- 打印单链表里的单词。
- 返回上一层。
e) 字符串的模式匹配 KMP 算法: - 将删除后的内容保存到一个数组 S 中。
- “单次查找”,用户输入一个待查找的模式串 T。使用 KMP 算法,在正文 S 中查找模式串 T 第一次出现的位置: o 若找到,返回并打印 T 在 S 中的位置。 o 若未找到,返回并打印“未找到”。
- “查找全部”,用户输入一个待查找的模式串 T。使用 KMP 算法,在正文 S 中查找模式串 T 出现的位置: o 若找到,返回并打印 T 在 S 中出现的次数及每次出现的位置。 o 若未找到,返回并打印“未找到”。
- 返回上一层。
f) 退出程序。