程式設計 資料結構

2021-09-25 16:11:29 字數 1059 閱讀 3721

乙個優秀的程式設計師的基礎是什麼?資料結構和演算法。其實程式還有另外乙個定義:

程式=資料結構+演算法

其實在計算機還沒發明之前,前人們是怎麼去做一件事的?操作手冊,其實操作手冊沒有把資料結構和演算法分開,比如根據操作手冊炒乙個菜:

第一步:倒入50克菜油

第二步:加入5克食鹽

第三步:倒入300克青菜

第四步:爆炒3分鐘

以上是筆者杜撰的乙個炒菜的程式過程,讀者朋友能區分出那些事演算法,哪些是資料結構部分嗎?很難吧,同時也沒有什麼必要。比如第二步跟第三步互換也不會有什麼影響,加入300克青菜跟加入400克青菜似乎問題也不大,所以沒有必要深入研究。這是現實社會中的「程式」,但是在計算機世界裡,如果按照上面邏輯實現了乙個程式,執行的順序和資料如果不對,那麼程式就直接報錯,不執行了。特別是如果資料複雜的話,怎麼儲存和處理資料,以及執行的順序就能體現出優劣來了,誰的準確率高,誰計算的快,誰占用的空間少,這些都是可以衡量程式好壞的關鍵指標,而且還很重要。

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。

根據主流的分類,主要有八類:陣列、棧、佇列、鍊錶、樹、雜湊表、堆、圖。陣列棧

佇列鍊錶

樹雜湊表堆圖

資料結構研究的內容:就是如何按一定的邏輯結構,把資料組織起來,並選擇適當的儲存表示方法把邏輯結構組織好的資料儲存到計算機的儲存器裡。研究的目的是為了更有效的處理資料,提高資料運算效率。資料的運算是定義在資料的邏輯結構上,但運算的具體實現要在儲存結構上進行。一般有以下幾種常用運算:

檢索;檢索就是在資料結構裡查詢滿足一定條件的節點。一般是給定乙個某字段的值,找具有該字段值的節點。

插入;往資料結構暈增加新的節點。

刪除。把指定的結點從資料結構中去掉。

更新。改變指定節點的乙個或多個欄位的值。

排序。把節點按某種指定的順序重新排列。例如遞增或遞減。

參考文獻

1.資料結構:八大資料結構分類

資料結構程式設計

1 陣列部分 雜湊表思想 雜湊表也稱為雜湊表,是演算法終於時間和空間作出權衡的經典例子。當乙個表所有的鍵都是小整數時,便可以使用乙個陣列來實現無序的符號表,將鍵作為陣列的索引而陣列i中所儲存的值就是該鍵所對應的鍵值,即key value對應。雜湊表的思想也是這樣子的,只是雜湊表的鍵的型別更為複雜而已...

資料結構幾道程式設計題

先將其中乙個鍊錶的鏈頭按到另乙個鍊錶的尾部,如果他們有交集則會構成乙個環,題目等價於找鍊錶中的環的起始結點。找到後將鍊錶還原。一.兩個長鍊表求交點 考慮環 public listnode getintersectionnode listnode heada,listnode headb listno...

核心程式設計的資料結構

一 資料型別 1.字串 typedef struct unicode string ushort length 字串的長度 所佔的位元組數 ushort maxinumlength 字串緩衝區的長度 所能佔的最大位元組數 pwstr buffer 字串緩衝區 字串的位址,也即指標 unicode s...