資料結構與演算法(四)

2021-09-08 01:27:20 字數 639 閱讀 5672

結構體

(1)為什麼出現結構體

為了表達一些複雜的資料,而普通的基本資料型別變數無法表示

(2)什麼是結構體

結構體是使用者根據自己的需求定義的一種新的資料型別

(3)如何使用結構體

兩種方式

struct student

;int main(void)

; printf("%d %s %d\n",st.number,st.name,st.age);

struct student *p;

p = &st;

p->number = 21;//p->number等價於 (*p).number,表示p指向st結構體中number變數

strcpy(p->name,"yang");

p->age = 25;

printf("%d %s %d\n",p->number,p->name,p->age);

return 0;

}

注意事項

結構體變數不能加減乘除,但是可以相互賦值

被調函式修改主調函式中普通結構體變數的值(跟普通變數,一維陣列一樣的方式),如果被調函式只是借用主動函式中普通結構體變數的值,可以相互賦值,但是比較耗記憶體,不推薦使用。

資料結構與演算法四

資料結構是資料儲存的方式,演算法則是處理資料的方法,通常我們通過分析演算法的時間複雜度和空間複雜度來判斷它的好壞。通常我們學資料結構的同時也會學習演算法,資料結構的不同就會導致演算法的不同,資料結構的選擇對演算法效率會產生重大的影響,所以資料結構與演算法緊密聯絡。乙個問題可能會有多種演算法,我們當然...

資料結構與演算法《四》

一切推理都必須從觀察與實驗得來。伽利略 伽利雷 編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17,24 18...

資料結構與演算法 基礎(四)

1.二分查詢 1.前提 該陣列是乙個有序陣列 2.思路 要考慮陣列中存在多個相同值的情況,以公升序陣列為例 向右收集相同值 temp mid 1 while temp right findval arr temp return list 2.插值查詢 1.前提 陣列是有序陣列 2.思路 同樣要考慮陣...