《数据结构与算法: C#语言描述》第1章读书笔记

《数据结构与算法: C#语言描述》第1章读书笔记

在这本书第一章的1.2.1节中结构的示例代码(请参见网址:http://book.51cto.com/art/200905/123578.htm)可能需要修改,因为奇怪的是:属性写了却没用到。将其中的ToString()重写方法和Initials()方法改为:

public override string ToString()

{

    return (String.Format("{0} {1} {2}", firstName, middleName, lastName));

}

public string Initials()

{

    return (String.Format("{0} {1} {2}", firstName.Substring(0, 1), middleName.Substring(0, 1), lastName.Substring(0, 1)));

}

在上面的示例代码片断中,fname改为firstName,mname改为middleName,lname改为lastName。这样的程序修改后实现了直接在该结构内调用它的属性,通过后面的new 结构的构造函数赋属性值。

接下来,在1.3.3节中程序的Count方法应由方法修改为属性,而不应使用方法。

public int Count

{

    get

    {

        return InnerList.Count;

    }

}

Count部分的示例代码片断

Console.WriteLine("Number of names: " + names.Count);

names.Remove("David");

Console.WriteLine("Number of names: " + names.Count);

names.Clear();

Console.WriteLine("Number of names: " + names.Count);

Main()方法部分的示例代码片断

Count的输出结果为:4,3,0。这样的程序修改后才是真正的实现Collection类。

在1.7节练习 第2题:请为Collection类添加Insert方法、Contains方法、IndexOf方法、RemoveAt方法。

public void Insert(int index, object item)

{

    InnerList.Insert(index, item);

}

public bool Contains(object item)

{

    return InnerList.Contains(item);

}

public int IndexOf(object item)

{

    return InnerList.IndexOf(item);

}

public int IndexOf(object item, int startIndex)

{

    return InnerList.IndexOf(item, startIndex);

}

public int IndexOf(object item, int startIndex, int count)

{

    return InnerList.IndexOf(item, startIndex, count);

}

public void RemoveAt(int index)

{

    InnerList.RemoveAt(index);

}

练习第3题:请使用Timing类来比较向Collection类和ArrayList类分别添加了1 000 000个整数时的性能。

using System;



class TestDemo

{

    static void BuildArray(Collection arr)

    {

        for (int i = 0; i <= 1000000; i++)

        {

            arr.Add(i);

        }

    }

    static void DisplayNums(Collection arr)

    {

        foreach(int i in arr)

        {

            Console.Write(i + " ");

        }

    }

    static void Main(string[] args)

    {

        Collection nums = new Collection();

        BuildArray(nums);

        Timing obj = new Timing();

        obj.startTime();

        DisplayNums(nums);

        obj.stopTime();

        Console.WriteLine("Time: " + obj.Result.TotalSeconds);

    }

}

上面的程序运行结果为:

《数据结构与算法: C#语言描述》第1章读书笔记

这是 Collection 类的程序实现。ArrayList类的程序实现与之类同,本贴文略过不写了。

你可能感兴趣的:(数据结构与算法)