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