跟著郝斌學資料結構(03) 鍊錶 基本概念

2021-07-11 20:01:39 字數 994 閱讀 2936

typedefine的使用:為了減少書寫的麻煩,可以將乙個結構體的定義用另外乙個名稱來代替。

typedefine struct student

int sid;

char[20] name;

int age;

}* pst,st;

在使用的時候,可以直接用pst或者st來代替struct student*和struct student。

鍊錶的定義:n個節點離散分配,彼此通過指標相連,每個節點最多只有乙個 前驅節點和後續節點,首節點沒有前驅節點,尾節點沒有後續節點。

首節點:第乙個存放有效資料的節點。

尾節點:最後乙個存放有效資料的節點。

頭結點:沒有存放資料或者鍊錶大小的乙個節點,首節點前面的乙個節點。其資料型別和首節點一樣。主要為了方便對鍊錶的操作。

頭指標:指向頭節點的指標變數。

尾指標:指向尾節點的指標變數。

陣列和鍊錶的比較

陣列連續,操作方便,獲取非常快,長度固定。

鍊錶離散,記憶體利用率小些(存放額外的指標),插入非常快,查詢困難一些。長度不定,動態新增容易。

確定乙個鍊錶需要的幾個引數

頭指標,有了頭指標我們就可以推算出其他所有的資訊。

乙個鍊錶的節點定義為:

typedefine struct node

*pnode,node;

鍊錶的分類

單鏈表:單向的鍊錶,指標域只指向後面或者前面

雙鏈表:每乙個節點有兩個指標域,分別指向前節點和後節點

迴圈鍊錶:能通過任何乙個節點找到其他所有的節點

非迴圈鍊錶:不是迴圈的鍊錶都是非迴圈鍊錶

郝斌資料結構4遞迴

1 定義 乙個函式自己直接或間接呼叫自己 2 舉例 include include voidf int n else int main void 執行結果 3 n的階乘用遞迴來實現 3.1 如果不用遞迴來實現 3.2 如果用遞迴來實現 4 1 2 3 100之和用遞迴來實現 4.1 不用遞迴實現 4...

郝斌老師資料結構10(遞迴)

這對你的編碼能力是個質的飛躍,如果你想成為乙個很厲害的程式設計師,資料結構是必須要掌握的,因為計算機專業的本科生也達不到這水平!計算機特別適合用遞迴的思想來解決問題,但是我們人類用遞迴的思想來考慮問題就會感到十分困擾,這也是很多學過遞迴的人一直都搞不明白的地方!那是不是遞迴可以隨便寫,當然不是,有些...

資料結構03 鍊錶

1.鍊錶是以節點的方式儲存的,鏈式儲存 2.每個節點包含data域 自身的數值 和next域 指向下個節點的位置 3.每個節點不一定是連續的 4.鍊錶分帶頭節點的鍊錶和不帶頭節點的鍊錶 1.定義節點 定義節點 class data02 public data02 int id,string name...