資料結構概述
定義:我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構儲存到主儲存器中(記憶體),
儲存乙個班級的成績(陣列) 要是10000個人 還可以陣列但是
很困難,陣列是連續存放的。10000個連續的空間,資料儲存關鍵。
資料量很大,沒有連續的那麼多空間。。。(鍊錶)(樹)的形式
做人事管理系統
以及在此基礎上為實現某
個功能。(比如查詢某個元素,刪除某個元素,對所有元素進行排
序)而執行的相應操作,這個相應的操作也叫演算法。
2、指標和陣列的關係
結構體為什麼會出現結構體
屬性 和 方法 為了表示一些複雜的資料,而普通的基本型別變數無法滿足要求。
什麼叫結構體
結構體是使用者根據實際需要自己定義的復合資料型別。
如何使用結構體
兩種方式:
struct student st = ;
struct student *pst; //結構體指標
1、st.sid = 99; //第一種方式
2、pst -> sid
pst所指向的結構體變數中的sid這個成員
注意事項
結構體變數不能加減乘除,但可以相互賦值。
普通結構體變數和結構體指標變數作為函式傳參的問題。
動態記憶體分配 (所有高階語言,沒有c裡深刻)
傳統陣列的缺點:
1.陣列長度必須事先指定,而且只能是常整數,不能是變數
例子int a[5]; //必須事先指定,而且只能是常整數
int len = 5; int a[len];//error
2.傳統形式定義的陣列,該陣列的記憶體程式設計師無法手動釋放
陣列一旦定義,系統為陣列分配的記憶體空間就會一直存在,除非陣列所在的函式執行終止。
在乙個函式執行期間,系統為該函式中的陣列分配的空間會一直存在。
直到該函式執行完畢時,陣列的空間才會被系統自動釋放。
例子:void f(void);....}
//陣列a 佔20個位元組的記憶體空間,程式設計師無法手動程式設計釋放它,陣列a只能在f()函式結束被系統釋放
3. 陣列的長度一旦定義,陣列長度就不能再更改。
陣列的長度不能在函式執行的過程中動態的擴充或縮小
4. 傳統方式定義的陣列不能跨函式使用
a函式定義的陣列,只有在a函式執行期間才可以被其他函式使用,
但a函式執行完畢後,a函式中的陣列將無法在被其他函式使用。
為什麼需要動態分配記憶體
很好的解決的了傳統陣列的4個缺陷
動態記憶體分配舉例_動態陣列的構造 難點
資料結構概述
1 資料 資料是資訊的的載體,是描述客觀事物的數 字元,以及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料大致可以分為 數值型資料 整數 浮點數 複數 雙精度數等 非數值型資料 字元 字串,以及文字 圖形 影象 語音等資料 2 資料結構 data structure 資料結構有兩個層次...
資料結構概述
還可以通過另乙個方面來看資料結構,那就是從它們的強項和弱項來看。在這裡用 的 方式來概述主要資料結構。下面的表顯示了不同資料結構的優缺點,大致給出它們的特性,就象從天空中鳥瞰地面的風景一樣。所以如果對其中的術語不太清楚的話,請不要太著急。陣列 插入快,如果知道下標 但查詢慢,刪除慢,大小固定 有序陣...
資料結構 概述
資料結構概述 定義 我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構 儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢 某個元素,刪除某個元素,對所有元素進行排序 而執行的相應操作,這 個相應的操作也叫演算法。資料結構 個體 個體的關係 演算法 對儲存資料的操作 演...