- Python數(shù)據(jù)結構與算法(視頻教學版)
- 孫玉勝 陳銳 張志鋒
- 1139字
- 2023-07-17 20:02:15
1.2 基本概念和術語
在學習數(shù)據(jù)結構的過程中,經常會涉及一些基本概念和專業(yè)術語會經常出現(xiàn),下面先來了解一下這些基本概念和術語。
1.數(shù)據(jù)
數(shù)據(jù)(data)是描述客觀事物的符號,能輸入到計算機中并能被計算機程序處理的符號集合。它是計算機程序加工的“原料”。例如,一個文字處理程序(如Microsoft Word)的處理對象就是字符串,一個數(shù)值計算程序的處理對象就是整型和浮點型數(shù)據(jù)。因此,數(shù)據(jù)的含義非常廣泛,如整型、浮點型等數(shù)值類型及字符、聲音、圖像、視頻等非數(shù)值數(shù)據(jù)都屬于數(shù)據(jù)范疇。
2.數(shù)據(jù)元素
數(shù)據(jù)元素(data element)是數(shù)據(jù)的基本單位,在計算機程序中通常作為一個整體來考慮和處理。一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項(data item)組成,數(shù)據(jù)項是數(shù)據(jù)不可分割的最小單位。例如,一個學校的教職工基本情況表包括工號、姓名、性別、籍貫、所在院系、出生年月及職稱等數(shù)據(jù)項,如表1.1所示。表中的一行就是一個數(shù)據(jù)元素,也稱為一條記錄。
表1.1 教職工基本情況

3.數(shù)據(jù)對象
數(shù)據(jù)對象(data object)是性質相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。例如,對于正整數(shù)來說,數(shù)據(jù)對象是集合N={1,2,3,…};對于字母字符數(shù)據(jù)來說,數(shù)據(jù)對象是集合C={'A','B','C',…}。
4.數(shù)據(jù)結構
數(shù)據(jù)結構(data structure)即數(shù)據(jù)的組織形式,它是數(shù)據(jù)元素之間存在的一種或多種特定關系的數(shù)據(jù)元素集合。在現(xiàn)實世界中,任何事物都是有內在聯(lián)系的,而不是孤立存在的,同樣在計算機中,數(shù)據(jù)元素不是孤立的、雜亂無序的,而是具有內在聯(lián)系的數(shù)據(jù)集合。例如,表1.1所示的教職工基本情況表是一種表結構,學校的組織機構是一種層次結構,城市之間的交通路線屬于圖結構,如圖1.2和圖1.3所示。

圖1.2 學校組織機構圖

圖1.3 城市之間交通路線圖
5.數(shù)據(jù)類型
數(shù)據(jù)類型(data type)用來刻畫一組性質相同的數(shù)據(jù)及其上的操作。數(shù)據(jù)類型是按照值的不同進行劃分的。在高級語言中,每個變量、常量和表達式都有各自的取值范圍,該類型就說明了變量或表達式的取值范圍以及所能進行的操作。例如,在Python語言中,一個英文字符占一個字節(jié),即8位,對于使用UTF-8編碼的漢字來說,一個中文字符占3個字節(jié),對于使用GBK編碼的漢字來說,一個漢字占2個字節(jié)。在相同的字符編碼情況下,字符類型決定了它的取值范圍,同時也定義了在其范圍內可以進行賦值運算、比較運算等。
在Python語言中,數(shù)據(jù)類型按照結構可分為:原子類型和結構類型。原子類型是不可以再分解的基本類型,包括整型、浮點型、復數(shù)型、布爾型、字符串型。結構類型是可以再分解的,它由若干個類型組合而成,包括列表、元組、集合、字典,如圖1.4所示。

圖1.4 數(shù)據(jù)類型
隨著計算機技術的飛速發(fā)展,計算機從最初僅能夠處理數(shù)值信息,發(fā)展到現(xiàn)在能處理的對象包括數(shù)值、字符、文字、聲音、圖像及視頻等信息。任何信息只要經過數(shù)字化處理,能夠讓計算機識別,都能夠進行處理。當然,這需要對要處理的信息進行抽象描述,讓計算機能理解。
- Practical Data Analysis Cookbook
- ServiceNow Application Development
- MySQL 8從入門到精通(視頻教學版)
- 騰訊iOS測試實踐
- 深度學習:算法入門與Keras編程實踐
- UML 基礎與 Rose 建模案例(第3版)
- Web Development with MongoDB and Node(Third Edition)
- INSTANT Sinatra Starter
- Python 3 數(shù)據(jù)分析與機器學習實戰(zhàn)
- Android應用開發(fā)實戰(zhàn)
- Android Studio開發(fā)實戰(zhàn):從零基礎到App上線 (移動開發(fā)叢書)
- 青少年學Python(第2冊)
- Maven for Eclipse
- Learning D3.js 5 Mapping(Second Edition)
- Building Microservices with Go