我正在寫一個程序讀取數據流並將其解析爲一些值:整數,浮點數,字符或包含一組值的複合值(可以嵌套) 。我怎麼能用C表示呢?我正在考慮聯合int
,float
,char
,然後有一個指向這些聯合的指針數組作爲複合值,但不能嵌套。代數數據類型相當於C
7
A
回答
4
(我想象你正在解析XML文件)
我們假設你有一大堆的節點。每個節點都可以有一個值,它可以是一組兄弟中的一個,也可以有子節點。這將使你喜歡一個結構:
struct Node
{
DATA Value;
DATATYPE Type;
Node* nextSibling;
Node* firstChild;
};
DATA
也能像你描述的聯合或獨立變量。但是,由於您將以與存儲它們相同的形式從中讀取值,因此工會應該沒問題。 DATATYPE
應該是一個枚舉。
1
您的意思是char
而不是char[]
?所有的char值都可以存儲在int
中。對於這個問題,可以肯定的是,所有你想要的int
值(以及你機器上所有可能的int
值)都可以完全由double
表示。
因此,我推薦在節點中使用double
有效載荷的樹狀結構。如有必要,請使用enum
來區分類型。您可以使用單個子指針和單個鏈接列表「下一個」指針來表示一個n元樹... Wikipedia有一個圖表,但我找不到它:v(。
相關問題
- 1. C#相當於C++/CLI數據類型
- 2. 相當於MySQL數據和時間數據類型的C#
- 3. 相當於VBA指數形式的C#數據類型
- 4. C#相當於jQuery.parents(類型)
- 5. Java相當於C#動態類類型?
- 6. Java相當於C#的類型?
- 7. 哪個C++類型是C類型的,相當於
- 8. C#相當於requests.post()函數
- 9. C++相當於VLOOKUP函數
- 10. 我需要一個相當於__int64的eVC++數據類型
- 11. SQL Server來Netezza數據類型相當於
- 12. 相當於MySQL枚舉數據類型的SQL Server?
- 13. 相當於TEXT數據類型的紅移
- 14. 什麼是相應的C++數據類型爲SQL數字(18,0)數據類型?
- 15. C#中的適當數據類型
- 16. UnityContainer.ResolveAll(類型)Autofac相當於
- 17. Java相當於C#代碼
- 18. c#相當於nodejs代碼
- 19. C#相當於該代碼
- 20. LPCSTR數據類型等同於C#
- 21. 關於C#數據類型的問題
- 22. 數據類型模型C++
- 23. 使用SWIG申請相同的C數據類型多種Java數據類型
- 24. C#:數據類型是否與類型相同?
- 25. cursor.description中「類型代碼」對應於數據庫字段類型
- 26. CryptoJS AES代碼相當於C#代碼
- 27. C#相當於C++的GDI代碼
- 28. C#.NET - 用於映射CSV文件數據的數據類型
- 29. JQuery相當於原型Down() - 函數
- 30. jQuery live函數的原型相當於
簡答題 - 不要試試這個在C :) – 2010-08-30 19:27:07
你打算怎麼處理這個數據流? – pmod 2010-08-30 19:30:37
您可以包含一個指向聯合的下一個實例的指針,以存儲值列表。 – Leonid 2010-08-30 19:31:10