⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generaltree.cs

📁 Data Structures and Algorithms with Object-Oriented Design Patterns in C# 这本书的范例代码dll自己反编译的source
💻 CS
字号:
namespace Opus6
{
    using System;

    [Version("$Id: GeneralTree.cs,v 1.4 2001/10/28 19:50:09 brpreiss Exp $"), Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng.")]
    public class GeneralTree : AbstractTree
    {
        public GeneralTree(object key)
        {
            this.key = key;
            this.degree = 0;
            this.list = new LinkedList();
        }

        public void AttachSubtree(GeneralTree t)
        {
            this.list.Append(t);
            this.degree++;
        }

        public override int CompareTo(object arg)
        {
            throw new MethodNotImplementedException();
        }

        public GeneralTree DetachSubtree(GeneralTree t)
        {
            this.list.Extract(t);
            this.degree--;
            return t;
        }

        public override Tree GetSubtree(int i)
        {
            if ((i < 0) || (i >= this.degree))
            {
                throw new IndexOutOfRangeException();
            }
            LinkedList.Element element1 = this.list.Head;
            for (int num1 = 0; num1 < i; num1++)
            {
                element1 = element1.Next;
            }
            return (GeneralTree) element1.Datum;
        }

        public static void Main()
        {
            GeneralTree tree1 = new GeneralTree('A');
            tree1.AttachSubtree(new GeneralTree('B'));
            tree1.AttachSubtree(new GeneralTree('C'));
            tree1.AttachSubtree(new GeneralTree('D'));
            tree1.AttachSubtree(new GeneralTree('E'));
            AbstractTree.TestTree(tree1);
        }

        public override void Purge()
        {
            this.list.Purge();
            this.degree = 0;
        }


        public override int Degree
        {
            get
            {
                return this.degree;
            }
        }

        public override bool IsEmpty
        {
            get
            {
                return false;
            }
        }

        public override bool IsLeaf
        {
            get
            {
                return (this.degree == 0);
            }
        }

        public override object Key
        {
            get
            {
                return this.key;
            }
        }


        protected int degree;
        protected object key;
        protected LinkedList list;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -