來源:公司資(zī)訊 | 2021.08.19
數據結構的起源
由于最初涉及的操作對象是簡單的整數、實數或布爾數據,因此程序員(yuán)的主要精力集中(zhōng)在編程技巧上,無需關注數據結構。随着計算機應用領域的擴大(dà)和軟硬件的發展,非數值計算問題變得越來越重要。
據統計,當今機器 90% 以上的時間都用于處理非數值計算問題。
這類問題涉及的數據結構比較複雜(zá),數據元素之間的關系一(yī)般不能用數學方程來描述。因此,解決此類問題的關鍵不再是數學分(fēn)析和計算方法,而是設計合适的數據結構。
所以,數據結構是一(yī)門研究非數值計算編程問題中(zhōng)的操作對象,以及它們與操作等相關問題的關系的學科。
1968年,美國DonaldEKnuth教授在他所著的《計算機程序設計藝術》第一(yī)卷中(zhōng)系統地解釋了數據的邏輯結構、存儲結構和操作,并開(kāi)創了“數據結構”課程結構。同年,數據結構作爲一(yī)門獨立課程開(kāi)始出現在計算機科學學位課程中(zhōng)。
數據結構是一(yī)門介于數學、計算機硬件、計算機軟件、邏輯等學科之間的綜合性學科。它是計算機學科的核心課程。是編譯系統、操作系統、數據庫等課程的設計與實現以及大(dà)型應用程序的基礎。
1970年代,大(dà)規模計算機程序出現,軟件開(kāi)始相對獨立,結構化程序設計成爲程序設計方法論的主要内容。
編程的本質是爲實際問題設計/選擇一(yī)個好的數據結構和一(yī)個好的算法。
一(yī)個好的算法在很大(dà)程度上取決于描述實際問題的數據結構。
著名的瑞士計算機科學家 N.Wirth 教授曾提出:
程序設計=數據結構+算法
數據結構的基本概念
俗話(huà)說“聰明的女人不能做飯沒有米飯”。數據結構是一(yī)門研究數據的學科,所以這裏的“米”就是數據。
數據不僅包括整數、字符類型、浮點類型等數字類型,還包括字符、圖像、聲音、視頻(pín)等非數字類型。
數據元素:比如我(wǒ)們要調查牲畜,牛、羊、馬、狗、豬等都是牲畜數據元素。
數據項:例如一(yī)個人的數據元素可以有眼睛、耳朵、鼻子、嘴巴和手等數據項,也可以有姓名、年齡、性别、出生(shēng)日期、出生(shēng)地址等數據項,和電話(huà)号碼。要使用哪些數據項取決于您制作的程序。
數據:描述客觀事實的符号,可以被計算機識别、操作和輸入的符号集合,是信息的載體(tǐ)
數據項:一(yī)個數據元素可以由若幹個數據項組成,構成一(yī)個數據元素的最小(xiǎo)單位
數據元素:數據的基本單位,通常作爲一(yī)個整體(tǐ)來考慮和處理
數據結構:相互之間具有一(yī)種或多種特定關系的數據元素的組合