資料結構與演算法(C#實現)系列---N叉樹(一) (轉)
資料結構與演算法(實現)系列---N叉樹(一):namespace prefix = o ns = "urn:schemas--com::office" />
Heavenkiller(原創)
N叉樹的每一節點度數都相同,為N
using System;
using System.Collections;
namespace DataStructure
{
///
/// NaryTree 的摘要說明。-----N叉樹
///
public class NaryTree:Tree
{
// member variables
protected key;
protected uint degree;
protected ArrayList treeList=new ArrayList();
//protected uint height=0;//暫時預設為0
//create an empty tree whose attribute of degree is _degree
public NaryTree(uint _degree)
{
//
// TODO: 在此處新增構造邏輯
//
this.key=null;
this.degree=_degree;
this.treeList=null;
}
//構造一棵葉子結點的N叉樹
public NaryTree(uint _degree,object _key)
{
this.key=_key;
this.degree=_degree;
this.treeList=new ArrayList();
this.treeList.Capacity=(int)_degree;
for(int i=0;i { this.treeList.Add( this.GetEmptyInstance(_degree) ); } } //----------------------------------------------------------------- protected virtual object GetEmptyInstance(uint _degree) { return new NaryTree(_degree); } //------------------------------------------------------------------- //judge whether the tree is an empty tree public overr bool IsEmpty() { return this.key==null; } //判定是否是葉子結點。如果即不是空樹且每一棵子樹均為空樹,則為葉子結點 public override bool IsLeaf() { if(IsEmpty()) return false; for(uint i=0;i { if( !(this[i].IsEmpty()) ) return false; } return true; } //-----------------------------------Inherited Attributes--------------------------------- public override object Key { get { return this.key; } } //器 public override Tree this[uint _index] { get { if( _index>=this.degree ) throw new Exception("My:out of index!");//如果出界,則丟擲異常 if( this.IsEmpty() ) return null;//如果是空樹,則索引器返回一個 null return (Tree)this.treeList[(int)_index]; } set { this.treeList[(int)_index]=value; } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-974272/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構與演算法(C#實現)系列---N叉樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---廣義樹(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(三) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---廣義樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---演示篇(一) (轉)資料結構演算法C#
- 資料結構丨N叉樹資料結構
- 資料結構與演算法(C#實現)系列---演示篇(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---演示篇(三) (轉)資料結構演算法C#
- 資料結構的故事之二叉樹, 字首樹, N叉樹資料結構二叉樹
- 資料結構系列:Objective-C實現二叉樹資料結構Object二叉樹
- 【資料結構與演算法】二叉樹資料結構演算法二叉樹
- 資料結構與演算法——表示式樹類的C++實現(二叉樹)資料結構演算法C++二叉樹
- 資料結構與演算法:二叉排序樹資料結構演算法排序
- javascript資料結構與演算法-- 二叉樹JavaScript資料結構演算法二叉樹
- 資料結構與演算法——二叉查詢樹類的C++實現資料結構演算法C++
- 【資料結構與演算法】二叉排序樹C實現(含完整原始碼)資料結構演算法排序原始碼
- 資料結構與演算法-kd二叉樹(kNN)資料結構演算法二叉樹KNN
- 資料結構與演算法-表示式二叉樹資料結構演算法二叉樹
- 資料結構與演算法-二叉樹性質資料結構演算法二叉樹
- 資料結構與演算法-二叉樹遍歷資料結構演算法二叉樹
- 資料結構與演算法-二叉查詢樹資料結構演算法
- 結構與演算法(05):二叉樹與多叉樹演算法二叉樹
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- 資料結構和演算法-Go實現二叉搜尋樹資料結構演算法Go
- 演算法與資料結構——AVL樹(平衡二叉搜尋樹)演算法資料結構
- 資料結構-二叉搜尋樹的實現資料結構
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- 資料結構與演算法-kd二叉樹(基礎)資料結構演算法二叉樹
- 【演算法與資料結構 02】二叉樹的引入演算法資料結構二叉樹
- 【資料結構與演算法】手撕平衡二叉樹資料結構演算法二叉樹
- 資料結構和演算法:二叉樹資料結構演算法二叉樹
- C#資料結構-二叉樹-順序儲存結構C#資料結構二叉樹
- 資料結構(樹):二叉樹資料結構二叉樹
- [資料結構] 樹、二叉樹、森林的轉換資料結構二叉樹
- 資料結構和演算法面試題系列—二叉樹基礎資料結構演算法面試題二叉樹
- 資料結構——樹與二叉樹的遍歷資料結構二叉樹