f*******b 发帖数: 520 | 1 没细想,大概思路是:
while(tag.getNextTag()!=null)
{
if(tag.getNextTag()==StartingNode)
tag=tag.getNextTag();
if(tag.getNextTag().getNextTag()==String)//节点进一层,level+1,之前节点为此
节点的母节点
Mother[Level]=tag;
Mother[Level++].CreatChild();
Tag=Tag.getNextTag().getNextTag();
if(tag.getNextTag().getNextTag()==StartingNode)//节点在同层,level不变,母节
点不变
Tag.getNextTag().getNextTag().getNextTag()
Mother[Level].CreatChild();
if(tag.getNextTag().getNextTag()==EndNode) //节点退一层,level-1,母节点回
溯到上层母节点
Leve... 阅读全帖 |
|
s*******s 发帖数: 1031 | 2 我的代码,用递归做。不一定对 。。
// n1n2n3n4
n1
/
n2
/ \
n3 n4
string getNextTag();
bool isTagStartingNode(string tag);
bool isTagEndNode(string tag);
bool isTagString(string tag)
struct TreeNode {
string value;
TreeNode *left;
TreeNode *right;
TreeNode(string v) : value(v), left(NULL), right(NULL) {}
};
TreeNode *parse(string startTag) {
// no more nodes left
if(str.size() == 0)
retu... 阅读全帖 |
|
x****8 发帖数: 127 | 3 stack?
public static void main(String[] args) {
XmlParser p = new XmlParser("ABDC");
String s;
Stack> stk = new Stack>();
TreeNode root = null;// = new TreeNode();
while((s = p.getNextTag()) != null){
if(p.isStartTag()){
String str = p.getNextTag();//assert is string tag
TreeNode node = new TreeNode(str);
... 阅读全帖 |
|
g**********9 发帖数: 49 | 4 have a flat xml string:
n1n2n3n4
How to convert it into a tree structure below. Suppose you have a XML parser
can tell you getNextTag(); isTagStartingNode(); isTagEndNode(); isTagString
()
n1
/
n2
/ \
n3 n4
Any idea? |
|