資料結構 C語言版 之一

2022-09-10 22:09:33 字數 1220 閱讀 8238

第1章 緒論

1.2基本概念和術語

1.2.1資料、資料元素、資料項和資料物件

資料是客觀事物的符號表示,是所有能輸入到計算機中並被電腦程式處理的符號的總稱。

資料元素是資料的基本單位。資料元素通常用於完整地描述乙個物件。例如一名學生記錄。

資料項是組成資料元素的、有獨立含義的、不可分割的最小單位。例如學生基本資訊表中的學號、姓名、性別等。

資料物件是性質相同的資料元素的集合,是資料的乙個子集。

1.2.2資料結構

資料結構是相互之間存在一種或多種特定關係(「結構」)的資料元素的集合。

資料結構包括邏輯結構和儲存結構兩個層次。

1.邏輯結構

(1) 集合結構

(2) 線性結構

(3) 樹結構

(4) 圖結構或網狀結構

其中集合結構、樹結構和圖結構都屬於非線性結構。

線性結構包括線性表、棧和佇列、字串、陣列、廣義表。

非線性結構包括樹和二叉樹、有向圖和無向圖。

2.儲存結構

(1) 順序儲存結構

(2) 鏈式儲存結構

1.4.1演算法的定義及特性

演算法是為了解決某類問題而規定的乙個有限長的操作序列。

乙個演算法必須滿足一下五個重要特性:

(1) 有窮性。乙個演算法必須總是在執行有窮步後結束,且每一步都必須在有窮時間內完成。

(2) 確定性。對於每種情況下所應執行的操作,在演算法中都有確切的規定,不會產生二義性,使演算法的執行者或閱讀者都能明確其含義及如何執行。

(3) 可行性。演算法中的所有操作都可以通過已經實現的基本操作運算執行有限次來實現。

(4) 輸入。乙個演算法有零個或多個輸入。

(5) 輸出。乙個演算法有乙個或多個輸出。

1.4.3演算法的時間複雜度

演算法的時間複雜度取決於問題的規模和待處理資料的初態。

一般情況下,演算法中基本語句重複執行的次數是時間規模n的某個函式f(n),演算法的時間量度記作t(n)=o(f(n)),它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱做演算法的漸進時間複雜度,簡稱時間複雜度。

若f(n)=amnm+am-1nm-1+…+a1n+a0是乙個m次多項式,則t(n)=o(nm)。

1.4.4演算法的空間複雜度

關於演算法的儲存空間需求,類似於演算法的時間複雜度,我們採用漸進空間複雜度作為演算法所需儲存空間的量度,簡稱空間複雜度,它也是問題規模n的函式,記作:s(n)=o(f(n))。

資料結構(C語言版)

用棧實現數字的進製轉換 10轉8 棧 限定只能在表尾進行插入或者刪除操作的線性表 特點 先進後出 儲存表示方法 順序棧和鏈棧 本文用的順序棧 實現 readonly name code class c include include define stack init size 100 儲存空間初始...

《資料結構(C語言版)》綜述

第一章 緒論 將於4月20日學習完畢,含課後題以及資料練習題 1.1什麼是資料結構 1.2基本概念和術語 1.3抽象資料結構型別的表示與實現 1.4演算法和演算法分析 1.4.1演算法 1.4.2演算法設計的要求 1.4.3演算法效率的度量 第二章 線性表 2.1線性表的型別定義 2.2線性表的順序...

讀資料結構(C語言版)

資料 資料是對現實世界物質的符號表示,在計算機中的意思是能輸入到計算機中進行計算處理的符號為資料 實現是客觀世界在計算機中的表示方式,是程式加工的原材料。資料可以是聲音,文件 資料元素 組成資料的基本構成單位,通常以結構化的形式出現,比如一本書的書目資訊,包含作者,書名,出版刊號,出版社這些資料項,...