Posted on 2006-06-26 22:49
mahudu@cppblog 閱讀(163)
評論(0) 編輯 收藏 引用 所屬分類:
Programming
???
+++++++++++++++
第四章:?C數據結構
+++++++++++++++
67.根據底層的抽象數據類型理解顯式的數據結構操作.
68.C語言中,?一般使用內建的數組類型實現向量,?不再對底層實現進行抽象.
69.N個元素的數組可以被序列for?(i=0;?i<N;?i++)完全處理;?所有其他變體都應該引起
警惕.
70.表達式sizeof(x)總會得到用memset或memcpy處理數組x(不是指針)所需的正確字節數
.
71.區間一般用區間內的第一個元素和區間后的第一個元素來表示.
72.不對稱區間中元素的數目等于高位邊界與低位邊界的差.
73.當不對稱區間的高位邊界等于低位邊界時,?區間為空.
74.不對稱區間中的低位邊界代表區間的第一個元素;?高位邊界代表區間外的第一個元素
.
75.結構的數組常常表示由記錄和字段組成的表.
76.指向結構的指針常常表示訪問底層記錄和字段的游標.
77.動態分配的矩陣一般存儲為指向數組列的指針或指向元素指針的指針;?這兩種類型都
可以按照二維數組進行訪問.
78.以數組形式存儲的動態分配矩陣,?用自定義訪問函數定位它們的元素.
79.抽象數據類型為底層實現元素的使用(或誤用)方式提供一種信心的量度.
80.數組用從0開始的順序整數為鍵,?組織查找表.
81.數組經常用來對控制結構進行高效編碼,?簡化程序的邏輯.
82.通過在數組中每個位置存儲一個數據元素和一個函數指針(指向處理數據元素的函數
),?可以將代碼與數據關聯起來.
83.數組可以通過存儲供程序內的抽象機(abstract?machine)或虛擬機(virtual?machin
e)使用的數據或代碼,?控制程序的運作.
84.可以將表達式sizeof(x)?/?sizeof(x[0])理解為數組x中元素的個數.
85.如果結構中含有指向結構自身|名為next的元素,?一般說來,?該結構定義的是單向鏈
表的結點.
86.指向鏈表結點的持久性(如全局|靜態或在堆上分配)指針常常表示鏈表的頭部.
87.包含指向自身的next和prev指針的結構可能是雙向鏈表的結點.
88.理解復雜數據結構的指針操作可以將數據元素畫為方框|指針畫為箭頭.
89.遞歸數據結構經常用遞歸算法來處理.
90.重要的數據結構操作算法一般用函數參數或模板參數來參數化.
91.圖的結點常常順序地存儲在數組中,?鏈接到鏈表中,?或通過圖的邊鏈接起來.
92.圖中的邊一般不是隱式地通過指針,?就是顯式地作為獨立的結構來表示.
93.圖的邊經常存儲為動態分配的數組或鏈表,?在這兩種情況下,?邊都錨定在圖的結點上
.
94.在無向圖中,?表達數據時應該將所有的結點看作是等同的,?類似地,?進行處理任務的
代碼也不應該基于它們的方向來區分邊.
95.在非連通圖中,?執行遍歷代碼應該能夠接通孤立的子圖.
96.處理包含回路的圖時,?遍歷代碼應該避免在處理圖的回路進入循環.
97.復雜的圖結構中,?可能隱藏著其他類型的獨立結構.