數(shù)據(jù)結(jié)構(gòu)是組織、處理、檢索和存儲(chǔ)數(shù)據(jù)的專門格式。數(shù)據(jù)結(jié)構(gòu)有幾種基本類型和可選類型,每種類型都是為特定目的組織數(shù)據(jù)而設(shè)計(jì)的。數(shù)據(jù)結(jié)構(gòu)使用戶更容易訪問和處理數(shù)據(jù)。最重要的是,數(shù)據(jù)結(jié)構(gòu)提供了一個(gè)組織信息的框架,使機(jī)器和人類能夠更好地理解信息。
在計(jì)算機(jī)科學(xué)和計(jì)算機(jī)編程中,可以選擇或設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)數(shù)據(jù),供各種算法使用。在某些情況下,算法的基本操作與數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)密切相關(guān)。每個(gè)數(shù)據(jù)結(jié)構(gòu)都包含有關(guān)數(shù)據(jù)值、數(shù)據(jù)間關(guān)系的信息,有時(shí)還包含可用于數(shù)據(jù)的函數(shù)。

1.如何使用數(shù)據(jù)結(jié)構(gòu)?
一般來說,數(shù)據(jù)結(jié)構(gòu)用于實(shí)現(xiàn)抽象數(shù)據(jù)類型的物理形式。數(shù)據(jù)結(jié)構(gòu)是高效軟件設(shè)計(jì)的基本組成部分。它們?cè)谒惴ㄔO(shè)計(jì)及其在計(jì)算機(jī)程序中的使用中也起著關(guān)鍵作用。
早期的編程語言,如 Fortran、C 和 C++,允許程序員定義自己的數(shù)據(jù)結(jié)構(gòu)。如今,許多編程語言都包含大量?jī)?nèi)置數(shù)據(jù)結(jié)構(gòu),用于組織代碼和信息。例如,Python 的列表和字典以及 JavaScript 的數(shù)組和對(duì)象都是用于存儲(chǔ)和檢索信息的常用編碼結(jié)構(gòu)。
軟件工程師使用與數(shù)據(jù)結(jié)構(gòu)緊密相連的算法,如列表、隊(duì)列和從一組值到另一組值的映射。這種方法可以在各種應(yīng)用中結(jié)合使用,例如管理關(guān)系數(shù)據(jù)庫中的記錄集,并使用一種名為二叉樹的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建這些記錄的索引。
2.數(shù)據(jù)結(jié)構(gòu)的屬性
數(shù)據(jù)結(jié)構(gòu)通常根據(jù)其屬性進(jìn)行分類。以下三個(gè)屬性就是例子:
a.線性或非線性。該屬性描述了數(shù)據(jù)元素是按順序排列(如數(shù)組),還是按無序順序排列(如圖)。
b.同質(zhì)或異質(zhì)。該屬性描述了給定存儲(chǔ)庫中的所有數(shù)據(jù)元素是否屬于同一類型。例如,數(shù)組中的元素集合或不同類型的元素集合,如 C 語言中定義為結(jié)構(gòu)的抽象數(shù)據(jù)類型或 Java 語言中的類規(guī)范。
c.靜態(tài)或動(dòng)態(tài)。該屬性描述了數(shù)據(jù)結(jié)構(gòu)的編譯方式。靜態(tài)數(shù)據(jù)結(jié)構(gòu)在編譯時(shí)有固定的大小、結(jié)構(gòu)和內(nèi)存位置。動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)的大小、結(jié)構(gòu)和內(nèi)存位置可根據(jù)應(yīng)用程序的需要縮小或擴(kuò)展。
3.如何選擇數(shù)據(jù)結(jié)構(gòu)
在為程序或應(yīng)用程序選擇數(shù)據(jù)結(jié)構(gòu)時(shí),開發(fā)人員應(yīng)考慮以下三個(gè)問題的答案:
a.支持的功能。程序需要哪些功能和操作?
b.計(jì)算復(fù)雜性。可接受的計(jì)算性能水平是多少?就速度而言,如果一個(gè)數(shù)據(jù)結(jié)構(gòu)的函數(shù)執(zhí)行時(shí)間與管理元素的數(shù)量成線性關(guān)系(使用大 O 符號(hào):O(n)),那么它將比一個(gè)函數(shù)執(zhí)行時(shí)間與管理元素?cái)?shù)量的平方成正比(O(n^2))的數(shù)據(jù)結(jié)構(gòu)更快。
c.編程簡(jiǎn)潔性。數(shù)據(jù)結(jié)構(gòu)的組織及其功能界面是否易于使用?
以上就是關(guān)于美國(guó)康奈爾大學(xué)CS課程輔導(dǎo)之?dāng)?shù)據(jù)結(jié)構(gòu)的內(nèi)容。如果你對(duì)此還有疑問,或者有更多關(guān)于學(xué)業(yè)輔導(dǎo)方面需求的話,可以添加微信號(hào):hmkt131聯(lián)系留學(xué)生輔導(dǎo)網(wǎng)的Joyce老師哦。