堆疊作業 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