数据结构与算法(C#实现)系列---广义树(一)

数据结构与算法 (C# 实现 ) 系列 --- 广义树 ( 一 )

Heavenkiller( 原创 )

广义树和基本树的主要区别就是有任意的度

using System;

using System.Collections;

namespace DataStructure

{

///

1<summary>
2
3///  GeneralTree  的摘要说明。 
4
5///  general tree is a tree which has a arbitrary degree and no empty tree 
6
7///  use ArrayList to replace ListAsLinkedList 
8
9///  </summary>

public class GeneralTree:Tree

{

protected object key= null ;

protected uint degree=0;

//protected uint height=0;

protected ArrayList treeList= new ArrayList();

public GeneralTree( object _objKey)

{

//

// TODO: 在此处添加构造函数逻辑

//

key=_objKey;

degree=0;

// height=0;

ArrayList treeList= new ArrayList();

}

public virtual void AttackSubtree(GeneralTree _gTree)

{

this .treeList.Add(_gTree);

++degree;

}

public virtual GeneralTree DetachSubtree(GeneralTree _gTree)

{

this .treeList.Remove(_gTree);

degree--;

return _gTree; //????? how to remove ,reference or object????

}

public override Tree this [ uint _index]

{

get

{

if (_index>= this .degree)

throw new Exception("my:out of index");

return (Tree)treeList[( int )_index];

}

set

{

treeList[( int )_index]= value ;

}

}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus