C#習題參考答案-《c#面向?qū)ο蟪绦蛟O計》-鄭宇軍
《C#習題參考答案-《c#面向?qū)ο蟪绦蛟O計》-鄭宇軍》由會員分享,可在線閱讀,更多相關《C#習題參考答案-《c#面向?qū)ο蟪绦蛟O計》-鄭宇軍(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、精品文檔,僅供學習與交流,如有侵權請聯(lián)系網(wǎng)站刪除 習題參考答案 Chapter 1 1_1 對象 客觀世界中的事物都是對象,包括有形的物理對象,可感知的邏輯實體,以及概念化的抽象實體。它有自己的屬性,能夠執(zhí)行特定的操作。 類 具有相同屬性和操作的一組對象的集合;它描述的不是單個對象,而是“一類”對象的共同特征。其重要性在于它是面向?qū)ο蠹夹g中最重要的結構,它支持信息隱藏和封裝,進而支持對抽象數(shù)據(jù)類型(ADT)的實現(xiàn)。 1_2 略 1_3 參考圖如下 圖1 1_4 UML與面向?qū)ο? UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言。它溶
2、入了軟件工程領域的新思想、新方法和新技術。它的作用域不限于支持面向?qū)ο蟮姆治雠c設計,還支持從需求分析開始的軟件開發(fā)的全過程。標準建模語言UML適用于以面向?qū)ο蠹夹g來描述任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測試和維護。 Chapter 2 2_1 程序的功能一般通過方法代碼來實現(xiàn)。每個方法都是從其第一行代碼開始執(zhí)行,直至最后一行代碼結束,期間可以通過代碼來調(diào)用其他的方法,從而完成各式各樣的操作。C#程序的起點是由Main方法定義的,程序總是從Main方法的第一行代碼開始執(zhí)行,在Main方法結束時停止運行。 2_2 略(注:不同版本的Visual
3、 Studio的菜單項有所區(qū)別) 2_3 略(注:不同版本的Visual Studio引用的程序集有所區(qū)別) 2_4 C#源代碼會被編譯為一種通用的中間語言(IL)代碼,該語言類似于低級語言,但其代碼與具體的硬件平臺無關;之后CLR再針對特定的平臺將IL程序翻譯為機器指令,加載所需要的資源并管理執(zhí)行。 2_5 //動態(tài)鏈接庫程序 using System; namespace p2_5 class Adder public static int Add(int a, int b) return a+b; //控制臺應用程
4、序 using System; using p2_5; namespace P2_6 class Program static void Main() Console.WriteLine("請輸入兩個數(shù):"); int a = int.Parse(Console.ReadLine()); int b = int.Parse(Console.ReadLine()); Console.WriteLine("{0}+{1}={2}", a, b, Adder.Ad
5、d(a+b)); Chapter 3 3_1 略 3_2 第一:值類型的變量直接包含自身的所有數(shù)據(jù),每創(chuàng)建一個變量,就在內(nèi)存中開辟一塊區(qū)域;只有通過變量才能修改它所包含的數(shù)據(jù)。而引用類型的變量只存儲對目標數(shù)據(jù)的引用,每創(chuàng)建一個變量,就增加一個指向目標數(shù)據(jù)的指針;有可能出現(xiàn)多個引用類型的變量指向同一份數(shù)據(jù)的情況,這時修改一個變量就會影響到其它所有的變量。 第二:作為方法參數(shù)時,值類型變量傳遞的是數(shù)值,引用類型變量傳遞的是地址,因此如果方法的執(zhí)行代碼修改了變量,對值類型的變量不會有影響,但會改變引用類型的變量。 第三:裝箱是將一個值類型轉(zhuǎn)換為一個對象類型(obj
6、ect),而拆箱則是將一個對象類型顯式轉(zhuǎn)換為一個值類型。 3_3 略 3_4 對整數(shù)為真,對實數(shù)不一定,因為實數(shù)受到計算機精度的影響。 3-5 四次執(zhí)行的結果分別是:3,6,-6,-3 3-6 當兩個操作數(shù)均為布爾類型時,與運算“&”和邏輯與運算“&&”的求值效果相同,或運算“|”和邏輯或運算“||”的求值效果相同。但異或運算“^”不存在對應的條件邏輯運算。 3-7 不是。if-else可進行任意分支,而“?:”操作符要求第二和第三個操作數(shù)的類型必須一致。 3-8 class Program static void Main(string[] args)
7、 Console.WriteLine("按任意鍵退出,其它鍵繼續(xù)…"); while(Console.ReadKey().KeyChar!=Q) Console.WriteLine("請輸入本金:"); double x = double.Parse(Console.ReadLine()); Console.WriteLine("請輸入利率:"); double y = double.Parse(Console.ReadLine());
8、 Console.WriteLine("請輸入存款年數(shù):");
double z = double.Parse(Console.ReadLine());
Console.WriteLine("本息合計為:");
for (int i=0; i 9、ole.ReadLine();
3-9
(1)
class Program
static void Main(string[] args)
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int i = 1, x = 1;
while (i <= n)
x = x * i;
i++;
Console.WriteLine 10、(x);
Console.ReadLine();
(2)
class Program
static void Main()
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int i = 1, x = 1;
do
x = x * i;
i++;
while (i <= n);
Conso 11、le.WriteLine(x);
Console.ReadLine();
(3)
class Program
static void Main()
Console.WriteLine("Please input a number:");
int n = int.Parse(Console.ReadLine());
int x = 1;
for (int i = 1; i <= n; i++)
x = x * i;
Console.WriteLine 12、(x);
Console.ReadLine();
3-10 略
3-11
class Program
static void Main()
Console.WriteLine("請輸入一個字符串:");
Console.WriteLine(Simp(Console.ReadLine()));
public static string Simp(string s)
StringBuilder sb1 = new StringBuilder();
for (int i = 0 13、; i < s.Length; i++)
while (i < s.Length - 1 && s[i] == s[i + 1])
i++;
sb1.Append(s[i]);
return sb1.ToString();
3-12
(1)
class Program
static void Main()
int sum = 0;
for (int i = 1; i <= 50; i++)
sum += 2*i;
14、
Console.WriteLine(sum);
Console.ReadLine();
(2)
class Program
static void Main()
int sum = 0, m = 1;
for (int i = 1; i <= 10; i++)
m = m * 2;
sum = sum + m;
Console.WriteLine(sum);
Console.ReadLine();
3-13 略
Cha 15、pter 4
4_1 靜態(tài)字段是指某個類型的所有對象所共享的字段,程序會在首次該類型時為字段分配存儲空間,所有對象都可以通過靜態(tài)成員來讀取或修改靜態(tài)字段。常量字段是特殊的靜態(tài)字段,它使用關鍵字const來修飾,且只能在聲明時賦值,之后不允許被修改。
只讀字段則是特殊的實例字段,它屬于單個對象所有,在聲明或構造函數(shù)中賦值,而在創(chuàng)建對象之后不允許被修改。
只讀屬性是指在屬性中只定義get訪問函數(shù)而不定義set訪問函數(shù),那么使用者只能訪問該屬性,而不能對屬性賦值。
4_2 提示:在析構函數(shù)中將靜態(tài)字段object_count的值減1
4_3 使用屬性更為安全(可以在訪問函數(shù)中增加控 16、制代碼),訪問更加靈活(可以在訪問函數(shù)中執(zhí)行各種計算),可擴展性也更好(修改屬性訪問代碼時不必修改字段名和屬性名,這就不會影響到其它對象和方法的使用)。
4_4
public class ComplexNumber
private double x, y;
public double X //實數(shù)部分
get {return x; }
set {x = value; }
public double Y; //虛數(shù)部分
get {return y; }
set {y = value; } 17、
public ComplexNumber(double x, double y)
this.x = x;
this.y = y;
public static ComplexNumber operator+(ComplexNumber c1, ComplexNumber c2)
return new ComplexNumber(c1.x + c2.x, c1.y + c2.y);
public static ComplexNumber operator-(ComplexNumber c1, ComplexNum 18、ber c2)
return new ComplexNumber(c1.x - c2.x, c1.y - c2.y);
public static bool operator ==(ComplexNumber c1, ComplexNumber c2)
return (c1.x == c2.x) && (c1.y == c2.y);
public static bool operator !=(ComplexNumber c1, ComplexNumber c2)
return (c1.x != c2.x) || (c1 19、.y != c2.y);
public static bool operator >(ComplexNumber c1, ComplexNumber c2)
double a = c1.x*c1.x + c1.y*c1.y;
double b = c2.x*c2.x + c2.y*c2.y;
return a > b;
public static bool operator >=(ComplexNumber c1, ComplexNumber c2)
return a == b || a > b;
20、 public static bool operator <(ComplexNumber c1, ComplexNumber c2)
return !(c1 >= c2);
public static bool operator <=(ComplexNumber c1, ComplexNumber c2)
return !(c1 > c2);
4_5 不能,因為this表示當前對象,而靜態(tài)成員是通過類型本身而非對象來訪問的。
4_6 如果字符串格式錯誤的幾率很小,使用Parse方法具有更高的效率;否則應選用TryParse方法來提高程序 21、的可靠性。
4_7 略
4_8
public int GetAge(DateTime birthday)
int y = DateTime.Year, m = DateTime.Month, d = DateTime.Day;
if (d < birthday.Day)
m--;
if (m < birthday.Month)
y--;
return y – birthday.Year;
4_9 略
4_10 一個省份中的城市、一個城市中的景點一般變化較少,適合用數(shù)組存儲。而旅游線路和方案要便于修改 22、。
Chapter 5
5_1 派生類自動繼承基類的公有成員和保護成員,但不能訪問基類的私有成員;外部對象只能訪問其中的公有成員,而不能訪問保護成員和私有成員。
5_2 構造函數(shù)和析構函數(shù)不能重載和隱藏。除非是默認構造函數(shù),否則派生類的構造函數(shù)須指明要調(diào)用的基類構造函數(shù)形式。
重載或隱藏屬性時要分別對get和set訪問函數(shù)進行重載或隱藏
重載或隱藏索引函數(shù)時與屬性類似
5_3 略
5_4 (1)Animal中的抽象方法不能有執(zhí)行代碼
(2)派生類Bird不能只重載基類Animal中Life屬性的get訪問函數(shù)
(3)派生類Mammal的life字段不要n 23、ew關鍵字來修飾,因為它不能訪問基類中的私有字段。
5_5
public abstract class Disk
protected double total, free;
public float Total //總容量
get { return total; }
set { total = value; }
public float Free //剩余容量
get { return free; }
public virtual void Write(float size)
24、 if (free >= size)
free -= size;
else
Console.WriteLine("剩余空間不足!");
public virtual void Delete(float size)
if (free + size <= total)
free += size;
public class HardDisk
public HardDisk(float size)
this.total = this.free = s 25、ize;
public class FlashDisk
public FlashDisk()
this.total = this.free = 64000;
public class CDROM
public override void Delete(float size)
Console.WriteLine("光盤不可刪除!");
5_6
// 抽象類:圖形Shape
public abstract class Shape
public abstract double Perimeter { get; }
26、 public abstract double Area { get; }
// 派生類: 圓形Circle
public class Circle : Shape
private double r;
public double R;
get { return r; }
set { r = value; }
public override double Perimeter
get { return 6.28 * r; }
public override double Area
27、get { return 3.14 * r * r; }
public Circle(double r)
this.r = r;
public class Rectangle : Shape
private double a, b;
public double A;
get { return a; }
set { a = value; }
public double B;
get { return b; }
set { b = value; }
publ 28、ic override double Perimeter
get { return 2 * (a + b); }
public override double Area
get { return a * b; }
public Rectangle(double a, double b)
this.a = a;
this.b = b;
5_7 在新類型中定義原結構類型的字段成員,通過該字段來調(diào)用結構的成員功能。
5_8 略
5_9 略
Chapter 6
6_1 (1)定義委托原型,其 29、簽名應與要封裝的方法保持一致。
(2)定義委托類型的變量。
(3)使用new關鍵字創(chuàng)建委托對象,并將要封裝的方法名作為參數(shù)傳遞給構造函數(shù)。
(4)通過委托變量來調(diào)用方法。
6_2
public static void Compare(Student s1, Student s2)
CompareFunction compare = new CompareFunction(CompareGrade);
int x = compare(s1, s2);
if (x == 0)
compare = CompareGrade;
30、
x = compare(s1, s2);
if (x == 0)
compare = CompareGrade;
x = compare(s1, s2);
return x;
public static void SortAndPrint(Student[] students)
for (int i = students.Length - 1; i > 0; i--)
for (int j = 0; j < i; j++)
if (Compa 31、re(students[j], students[j + 1]) > 0) {
Student s = students[j];
students[j] = students[j + 1];
students[j + 1] = s;
foreach (Student s in students)
Console.WriteLine(s);
6_3
public static void WriteDelegateInfo(Delegate dg)
if (dg == null)
32、return;
Console.WriteLine("MethodName: {0}", dg.Method.Name);
Console.WriteLine("MethodBelongType: {0}", dg.Method.DeclaringType);
Console.WriteLine("Target: {0}", dg.Target);
foreach (Delegate dg in dg3.GetInvocationList())
Console.WriteLine(dg.Method);
Console 33、.WriteLine(dg.Target);
6_4 輸出為:2, 3, 4
6_5 匿名方法可以把一段代碼直接作為參數(shù)使用,而無需顯式地定義方法的原型。通過捕獲外部變量,匿名方法還能夠?qū)崿F(xiàn)與外部程序的狀態(tài)共享。這不僅能夠簡化程序,提高了代碼的可維護性,還大大方便了程序中的各種計算。
6_6 事件是委托類型的對象,事件的觸發(fā)方法是該對象的客戶,而事件的處理方法是該對象提供的服務。
6_7 旅行團所關聯(lián)的導游和負責業(yè)務員是明確的,可以在改變狀態(tài)的方法代碼中訪問這些導游和業(yè)務員對象。而旅行團所關聯(lián)的游客可能不斷變化,采用發(fā)布/訂閱方式能夠方便地通知所有綁定的游客。
6_8 34、略
Chapter 7
7_1 可從以下幾方面考慮:
(1)合理布局:在左上方或正上方提供車次和站名的輸入控件,在中央顯示查詢結果。
(2)方便導航:在查詢結果中,通過單擊車次和站名可直接顯示相關信息。
(3)簡化輸入:允許用戶通過簡拼或雙拼等方式來輸入中文站名。
(4)撤銷和恢復:允許用戶回退到上次查詢。
(5)等待響應:查詢時間較長時,顯示等待光標,還可先顯示部分查詢結果。
7_2 對于不常用的字體族,創(chuàng)建其Font對象時要先檢查用戶計算機上是否安裝了該字體。必要時可隨程序安裝字體。
7_3 在窗體尺寸改變事件中,通過Form對象的Height屬性 35、來進行控制。
7_4 通過文本框的KeyPress事件來進行控制:
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
int ch = e.KeyChar;
if (ch<48 || ch>57 && ch!=8)
e.Handled = false;
7_5 略
7_6 如果增加之后的數(shù)值超過控件的Maximum,第二行代碼執(zhí)行后會發(fā)生異常,而第一行代碼會使控件中的數(shù)值等于Maximum。
7_7 略
7_8 提示:可參考MSDN幫助中的Control控件 36、文檔。
7_9 主要方面有:
(1)業(yè)務對象與窗體界面綁定,通常是在窗體類中定義一個業(yè)務對象類型的字段成員,通過窗體初始化事件的處理代碼來將對象信息顯示在窗體控件中。
(2)在保存對象信息時,通常要檢查窗體控件中對應的輸入信息是否完整和合法,否則應要求用戶重新輸入。
(3)如果要在不同的窗體間傳遞對象,那么可將對象變量作為目標窗體的構造函數(shù)參數(shù),通過其構造函數(shù)來初始化對應的對象字段。
(4)如果多個窗體共享一個對象信息,那么在其中一個窗體修改了對象信息后,應及時更新其它窗體的顯示內(nèi)容。
Chapter 8
8_1 以1000000以內(nèi)的int值為例:
static 37、 void Main()
FileStream fs1 = new FileStream("num.txt", FileMode.Create);
for (int a = 1, b = 1; a <= 1000000; a += b)
int t = b;
b = a;
a = t;
int x = a/(2<<24);
fs1.WriteByte((byte)x); //寫入25~32位
a -= x;
x = a/(2<<16);
38、 fs1.WriteByte((byte)x); //寫入17~24位
a -= x;
x = a/(2<<8);
fs1.WriteByte((byte)x); //寫入9~16位
a -= x;
fs1.WriteByte((byte)x); //寫入1~8位
fs1.Position = 0;
Console.Write("請輸入要讀取的數(shù)列項: ");
int i = int.Parse(Console.ReadLine());
fs1.Position 39、 = 4 * i;
int y = 16777216*fs1.ReadByte() + 65536*fs1.ReadByte() + 256*fs1.ReadByte() + fs1.ReadByte();
Console.WriteLine("數(shù)列項為: " + y);
fs1.Close();
8_2 提示:創(chuàng)建一個文本文件,在窗體的關閉事件中向文件寫入當前時間,在窗體的啟動事件中讀取上次寫入時間。
8_3 在控制臺逐行依次輸出48~57
8_4 二進制方式對文件的存取效率較高,但編程更為復雜,需要處理字節(jié)類型與其它各種類型之間的轉(zhuǎn)換。文本方式存 40、取文件速度較慢,占用的磁盤容量也較大,但編程更為簡單,只需要把各種類型都按字符串格式處理即可。
8_5 略
8_6 應在顯示對話框之前設置的屬性主要有:Filter、FilterIndex、InitialDirectory、RestoreDirectory、Multiselect、OverwritePrompt;之后設置的屬性主要有FileName有FileNames。
8_7 在寫入每個對象時,應首先將對象的類型名寫入文件;在讀取文件時,首先讀取類型名,再根據(jù)不同的類型來使用構造函數(shù)創(chuàng)建對象。
8_8 在寫入文件流時,可通過一個密鑰字符來對文件的每個字節(jié)進行加密,即將字節(jié)與密 41、鑰字符進行與或運算后寫入文件,讀取時再與密鑰字符進行一次與或運算來進行解密:
public void Save(BinaryWriter writer, char key)
char[] chs = new char[_username.Length];
for (int i=0; i 42、ngth; i++)
chs[i] = _password[i] ^ key;
writer.Write(chs);
writer.Write(_staffId ^ key);
public static User Load(BinaryReader reader, char key)
string username = reader.ReadString();
char[] chs1 = new char[username.Length];
for (int i=0; i 43、 chs1[i] = username[i] ^ key;
string password = reader.ReadString();
char[] chs2 = new char[password.Length];
for (int i=0; i 44、提示:要管理用戶登錄系統(tǒng)的記錄,可為每個用戶創(chuàng)建一個文本文件(如“用戶ID”+“.log”),在其中記錄用戶各次登錄的時間信息。
Chapter 9
9_1 try-catch:正常情況下執(zhí)行try代碼段中的語句,出現(xiàn)異常就轉(zhuǎn)而執(zhí)行catch代碼段中的語句。如果catch語句限定了異常類型,那么只有指定異常發(fā)生時轉(zhuǎn)入catch代碼段,否則不作處理。
try-catch-finally:執(zhí)行情況和try-catch結構類似,但不論是否發(fā)生異常,程序最后都會執(zhí)行finally語句中的代碼段。finally語句應放在所有catch語句之后,且只能出現(xiàn)一次。
try-catch:實際上 45、不進行異常處理。正常情況下執(zhí)行try代碼段中的語句,出現(xiàn)異常后則在執(zhí)行完finally代碼段之后引發(fā)異常。
9_2 輸出"發(fā)生參數(shù)異常"
9_3 對于常量表達式,如果使用checked操作符強制對表達式進行類型檢查,或是在編譯時指定了“/checked+”選項,那么發(fā)生溢出的表達式將不能通過編譯。如果不要求檢查,那么執(zhí)行到發(fā)生溢出的表達式就會引發(fā)OverflowException異常。
對于一般運算表達式,執(zhí)行到發(fā)生溢出的表達式都會引發(fā)OverflowException異常。
表達式發(fā)生溢出主要是指整數(shù)變量的范圍超出了其類型的最大/最小取值范圍,如對取值為30000的short型 46、變量加10000,或是將1000強制轉(zhuǎn)換為byte型變量。
9_4 打開文件時可能引發(fā)的異常主要有:
(1)DirverNotFoundException:指定的磁盤分區(qū)不存在。
(2)DirectoryNotFoundException:指定的文件目錄不存在。
(3)FileNotFoundException:指定的文件不存在。
(4)FileLoadException:加載文件內(nèi)容失敗。
如果文件是用于記錄程序相關信息,那么在打開文件失敗時應創(chuàng)建新文件;如果用戶需要使用程序來編輯文件內(nèi)容,那么應向用戶報告錯誤并由用戶選擇相應的處理方式。
9_5 略
9_6 略
Ch 47、apter 10
10_1 抽象類和接口都不能被實例化,抽象類中的抽象方法和接口中的接口方法都只有方法聲明,而沒有執(zhí)行體。抽象方法和接口方法都需要在具體的派生類中提供實現(xiàn)。
抽象類可以有成員字段和非抽象方法,但接口不能。即接口是比抽象類更為“抽象”的一種數(shù)據(jù)類型。
10_2 如果需要通過對象實例來調(diào)用方法,那么應采用隱式實現(xiàn)的方式。如果要區(qū)別不同接口的同名方法,那么應采用顯式實現(xiàn)的方式,并在調(diào)用時先將對象轉(zhuǎn)換為對應的接口類型。
10_3 不能,必須是重載基類中的虛擬方法才能使用override修飾符。
10_4 略
10_5 組合框和列表框的元素集合都實現(xiàn)了IColle 48、ction接口,那么可以創(chuàng)建一個ArrayList或List 49、blic object Value
get { return this.value; }
set { this.value = value; }
public BTNode Left
get { return left; }
set { left = value; }
public BTNode Right
get { return right; }
set { right = value; }
50、 public BTNode(object obj)
value = obj;
/// 51、se(root).Length; }
private BinaryTree()
this.root = null;
public BinaryTree(object obj)
this.root = new BTNode(obj);
public BinaryTree(BTNode root)
this.root = root;
public void CopyTo(Array array, int index)
Pre 52、Traverse(root).CopyTo(array, index);
IEnumerator IEnumerable.GetEnumerator()
return PreTraverse(root).GetEnumerator();
bool ICollection.IsSynchronized
get { return false; }
object ICollection.SyncRoot
get { return null; }
pub 53、lic static object[] PreTraverse(BTNode node) //前序遍歷
if (node == null)
return null;
ArrayList nodes = new ArrayList();
nodes.Add(node.Value);
if (node.Left != null)
nodes.AddRange(PreTraverse(node.Left));
54、 if (node.Right != null)
nodes.AddRange(PreTraverse(node.Right));
return nodes.ToArray();
public static object[] InTraverse(BTNode node) //中序遍歷
if (node == null)
return null;
ArrayList nodes = new ArrayList();
55、 if (node.Left != null)
nodes.AddRange(InTraverse(node.Left));
nodes.Add(node.Value);
if (node.Right != null)
nodes.AddRange(InTraverse(node.Right));
return nodes.ToArray();
public static object[] PostTraverse(BT 56、Node node) //后序遍歷
if (node == null)
return null;
ArrayList nodes = new ArrayList();
if (node.Left != null)
nodes.AddRange(PostTraverse(node.Left));
if (node.Right != null)
nodes.AddRange(PostTraver 57、se(node.Right));
nodes.Add(node.Value);
return nodes.ToArray();
public static BinaryTree EmptyBinaryTree
get { return new BinaryTree(); }
class Program
static void Main()
BinaryTree tree1 = new BinaryTree(1);
int 58、 i = 1;
BTNode r = tree1.Root;
while (i < 100)
r.Left = new BTNode(i * 2);
r.Right = new BTNode(i * 3);
if (i % 2 == 1)
r = r.Left;
i = i * 2;
else
59、 r = r.Right;
i = i * 3;
object[] result = BinaryTree.PreTraverse(tree1.Root);
Console.WriteLine("前序遍歷:");
foreach (object obj in result)
Console.Write(obj.ToString() + ,);
Console.WriteLine("\n中序遍歷:");
60、 result = BinaryTree.InTraverse(tree1.Root);
foreach (object obj in result)
Console.Write(obj.ToString() + ,);
Console.WriteLine("\n后序遍歷:");
result = BinaryTree.PostTraverse(tree1.Root);
foreach (object obj in result)
61、 Console.Write(obj.ToString() + ,);
10_8 略
Chapter 11
11_1 略
11_2 泛型類A 62、ew List 63、s in l1)
Console.Write(s + );
11_6 提示:將二叉樹節(jié)點類型BTNode改為泛型類型BTNode 64、 nodes.Add(node.Value);
if (node.Left != null)
nodes.AddRange(PreTraverse(node.Left));
if (node.Right != null)
nodes.AddRange(PreTraverse(node.Right));
return nodes.ToArray();
public static T[] InTraverse(BTNode 65、 66、 nodes.AddRange(InTraverse(node.Right));
return nodes.ToArray();
public static T[] PostTraverse(BTNode使用的類型參數(shù)S在A中沒有定義,應將其改為B
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案