堆叠作业 C++

楼主: chicly123 (小米)   2007-11-16 09:29:51
题目: HTML/XML 原始码的 parsing 与 print
本作业的输入为一个文字档 ds.html, 内容为标准 HTML 码。
ds.html 范例:
<html>
<head>
<title>
This is a sample page
</title>
</head>
<body>
<table>
<tr>
<td>
(1,1)
</td>
<td>
(1,2)
</td>
</tr>
<tr>
<td>
(2,1)
</td>
<td>
(2,2)
</td>
</tr>
<tr>
<td>
(3,1)
</td>
<td>
(3,2)
</td>
</tr>
</table>
</body>
</html>
(1) 使用 stack 印出成对的HTML tag,非tag 则不印。
作法是扫描每一行,此时会有三种情形,分别有三种处理对策:
1.左tag (如<td>): 加入stack
2.内文(如 (1,1)): 丢弃
3.右tag (如</td>):删除stack,并印出删除的tag
例如上面的ds.html 应该印出
<title< </title>
<head> </head>
<td> </td>
<td> </td>
<tr> </tr>
<td> </td>
<td> </td>
<tr> </tr>
<td> </td>
<td> </td>
<tr> </tr>
<table> </table>
<body> </body>
<html> </html>
(2) 使用 stack 计算 HTML 档的depth (见图一,depth=垂直方向节点数)。例如图一,
depth=6。
注意此题不需用到 generalized list,直接用 stack 即可。
不好意思 因为一直看书 之后用DEV C++去做 发现很多困难
读档方面 我用ifstream inFile(*) 下去开
可是只能读书纯文字方面
用到有<>
这些 他就读不出来= =
希望有高手能帮忙一下
那个前面的是ds.html档案内的内容
那是html的语法 用dev c++写程式 读那个档案
把<xx> 部分的把他存到堆叠 之后遇到</xx>
把他们都提出来 要成双成对 最后就会出现结果 结果如上
烦请高手帮忙

Links booklink

Contact Us: admin [ a t ] ucptt.com