c語言一對多
A. c語言,什麼是實體演員不該是一對多嗎
對於演員這個實體來說是一個集合
而演員演的電影也是一個集合
簡單說就是演員和電影之間是:一個演員可以對應多個電影,一個電影里也有多個演員
這不就是多對多的概念嗎
B. c語言重點
站長提醒廣大考生:下面的138道題目,在二級考試中命中率極高。
一、選擇題
(1) 下面敘述正確的是(C)
A. 演算法的執行效率與數據的存儲結構無關B. 演算法的空間復雜度是指演算法程序中指令(或語句)的條數C. 演算法的有窮性是指演算法必須能在執行有限個步驟之後終止 D. 以上三種描述都不對
(2) 以下數據結構中不屬於線性數據結構的是(C)
A. 隊列 B. 線性表 C. 二叉樹 D. 棧
(3) 在一棵二叉樹上第5層的結點數最多是(B) 註:由公式2k-1得
A. 8 B. 16 C. 32 D. 15
(4) 下面描述中,符合結構化程序設計風格的是(A)
A. 使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯 B. 模塊只有一個入口,可以有多個出口 C. 注重提高程序的執行效率 D. 不使用goto語句
(5) 下面概念中,不屬於面向對象方法的是 (D) 註:P55-58
A. 對象 B. 繼承 C. 類 D. 過程調用
(6) 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是(B)
A. 可行性分析 B. 需求分析 C. 詳細設計 D. 程序編碼
(7) 在軟體開發中,下面任務不屬於設計階段的是(D)
A. 數據結構設計 B. 給出系統模塊結構
C. 定義模塊演算法 D.定義需求並建立系統模型
(8) 資料庫系統的核心是(B)
A. 數據模型 B. 資料庫管理系統 C. 軟體工具 D. 資料庫
(9) 下列敘述中正確的是(C)
A.資料庫是一個獨立的系統,不需要操作系統的支持B.資料庫設計是指設計資料庫管理系統C.資料庫技術的根本目標是要解決數據共享的問題 D.資料庫系統中,數據的物理結構必須與邏輯結構一致
(10) 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是(A) 註:P108
A. 內模式 B. 外模式 C. 概念模式 D. 邏輯模式
(11) 演算法的時間復雜度是指(C)
A. 執行演算法程序所需要的時間 B. 演算法程序的長度 C. 演算法執行過程中所需要的基本運算次數 D. 演算法程序中的指令條數
(12) 演算法的空間復雜度是指(D)
A. 演算法程序的長度 B. 演算法程序中的指令條數 C. 演算法程序所佔的存儲空間 D. 演算法執行過程中所需要的存儲空間
(13) 設一棵完全二叉樹共有699個結點,則在該二叉樹中的葉子結點數為(B) 註:利用公式n=n0+n1+n2、n0=n2+1和完全二叉數的特點可求出
A. 349 B. 350 C. 255 D. 351
(14) 結構化程序設計主要強調的是(B)
A.程序的規模 B.程序的易讀性
C.程序的執行效率 D.程序的可移植性
(15) 在軟體生命周期中,能准確地確定軟體系統必須做什麼和必須具備哪些功能的階段是(D) 註:即第一個階段
A. 概要設計 B. 詳細設計 C. 可行性分析 D. 需求分析
(16) 數據流圖用於抽象描述一個軟體的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是(A) 註:P67
A. 控制流 B. 加工 C. 數據存儲 D. 源和潭
(17) 軟體需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規格說明書以及(B) 註:P66
A. 階段性報告 B. 需求評審 C. 總結 D. 都不正確
(18) 下述關於資料庫系統的敘述中正確的是(A)
A. 資料庫系統減少了數據冗餘 B. 資料庫系統避免了一切冗餘
C. 資料庫系統中數據的一致性是指數據類型的一致 D. 資料庫系統比文件系統能管理更多的數據
(19) 關系表中的每一橫行稱為一個(A)
A. 元組 B. 欄位 C. 屬性 D. 碼
(20) 資料庫設計包括兩個方面的設計內容,它們是(A)
A. 概念設計和邏輯設計 B. 模式設計和內模式設計
C. 內模式設計和物理設計 D. 結構特性設計和行為特性設計
(21) 下列敘述中正確的是(A)
A. 線性表是線性結構 B. 棧與隊列是非線性結構
C. 線性鏈表是非線性結構 D. 二叉樹是線性結構
(22) 下列關於棧的敘述中正確的是(D)
A. 在棧中只能插入數據 B. 在棧中只能刪除數據
C. 棧是先進先出的線性表 D. 棧是先進後出的線性表
(23) 下列關於隊列的敘述中正確的是(C)
A. 在隊列中只能插入數據 B. 在隊列中只能刪除數據
C. 隊列是先進先出的線性表 D. 隊列是先進後出的線性表
(24) 對建立良好的程序設計風格,下面描述正確的是(A) 註:P48
A. 程序應簡單、清晰、可讀性好 B. 符號名的命名要符合語法
C. 充分考慮程序的執行效率 D. 程序的注釋可有可無
(25) 下面對對象概念描述錯誤的是(A) 註:P55
A. 任何對象都必須有繼承性 B. 對象是屬性和方法的封裝體
C. 對象間的通訊靠消息傳遞 D. 操作是對象的動態性屬性
(26) 下面不屬於軟體工程的3個要素的是(D) 註:P62
A. 工具 B. 過程 C. 方法 D. 環境
(27) 程序流程圖(PFD)中的箭頭代表的是(B) 註:P81
A. 數據流 B. 控制流 C. 調用關系 D. 組成關系
(28) 在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是(A)
A.資料庫系統B. 文件系統 C. 人工管理 D. 數據項管理
(29) 用樹形結構來表示實體之間聯系的模型稱為(B)
A. 關系模型 B. 層次模型 C. 網狀模型 D. 數據模型
(30) 關系資料庫管理系統能實現的專門關系運算包括(B)
A. 排序、索引、統計 B. 選擇、投影、連接
C. 關聯、更新、排序 D. 顯示、列印、製表
(31) 演算法一般都可以用哪幾種控制結構組合而成(D) 註:P3
A. 循環、分支、遞歸 B. 順序、循環、嵌套
C. 循環、遞歸、選擇 D. 順序、選擇、循環
(32) 數據的存儲結構是指(B) 註:P13,要牢記
A. 數據所佔的存儲空間量 B. 數據的邏輯結構在計算機中的表示
C. 數據在計算機中的順序存儲方式 D. 存儲在外存中的數據
(33) 設有下列二叉樹:圖見書P46
對此二叉樹中序遍歷的結果為(B)
A. ABCDEF B. DBEAFC C. ABDECF D. DEBFCA
(34) 在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發送(D) 註:P56
A. 調用語句 B. 命令 C. 口令 D. 消息
(35) 檢查軟體產品是否符合需求定義的過程稱為(A) 註:P95
A. 確認測試 B. 集成測試 C. 驗證測試 D. 驗收測試
(36) 下列工具中屬於需求分析常用工具的是(D) 註:P67
A. PAD B. PFD C. N-S D. DFD
(37) 下面不屬於軟體設計原則的是(C) 註:P73
A. 抽象 B. 模塊化 C. 自底向上 D. 信息隱蔽
(38) 索引屬於(B)
A. 模式 B. 內模式 C. 外模式 D. 概念模式
(39) 在關系資料庫中,用來表示實體之間聯系的是(D)
A. 樹結構 B. 網結構 C. 線性表 D. 二維表
(40) 將E-R圖轉換到關系模式時,實體與聯系都可以表示成(B)
A. 屬性 B. 關系 C. 鍵 D. 域
(41) 在下列選項中,哪個不是一個演算法一般應該具有的基本特徵(C)
A. 確定性 B. 可行性 C.無窮性D. 擁有足夠的情報
(42) 希爾排序法屬於哪一種類型的排序法(B)
A.交換類排序法 B.插入類排序法 C.選擇類排序法 D.建堆排序法
(43) 在深度為5的滿二叉樹中,葉子結點的個數為(C)
A. 32 B. 31 C. 16 D. 15
(44) 對長度為N的線性表進行順序查找,在最壞情況下所需要的比較次數為(B) 註:要牢記
A. N+1 B. N C. (N+1)/2 D. N/2
(45) 信息隱蔽的概念與下述哪一種概念直接相關(B) 註:P74
A.軟體結構定義 B. 模塊獨立性 C. 模塊類型劃分 D. 模擬耦合度
(46) 面向對象的設計方法與傳統的的面向過程的方法有本質不同,它的基本原理是(C)
A. 模擬現實世界中不同事物之間的聯系 B. 強調模擬現實世界中的演算法而不強調概念 C. 使用現實世界的概念抽象地思考問題從而自然地解決問題 D. 鼓勵開發者在軟體開發的絕大部分中都用實際領域的概念去思考
(47) 在結構化方法中,軟體功能分解屬於下列軟體開發中的階段是(C) 註:總體設計也就是概要設計
A. 詳細設計 B. 需求分析 C. 總體設計 D. 編程調試
(48) 軟體調試的目的是(B) 註:與軟體測試要對比著復習
A.發現錯誤 B.改正錯誤 C.改善軟體的性能 D.挖掘軟體的潛能
(49) 按條件f對關系R進行選擇,其關系代數表達式為(C)
A. R|X|R B. R|X|Rf C. бf(R) D. ∏f(R)
(50) 資料庫概念設計的過程中,視圖設計一般有三種設計次序,以下各項中不對的是(D) 註:P127,要牢記
A. 自頂向下 B. 由底向上 C. 由內向外 D. 由整體到局部
(51) 在計算機中,演算法是指(C)
A. 查詢方法 B. 加工方法
C. 解題方案的准確而完整的描述 D. 排序方法
(52) 棧和隊列的共同點是(C) 註:這一共同點和線性表不一樣
A. 都是先進後出 B. 都是先進先出 C. 只允許在端點處插入和刪除元素 D. 沒有共同點
(53) 已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是(A) 註:P38,前提要掌握三種遍歷的方法
A. cedba B. acbed C. decab D. deabc
(54) 在下列幾種排序方法中,要求內存量最大的是(D) 註:要牢記,書中沒有提到。
A. 插入排序 B. 選擇排序 C. 快速排序 D. 歸並排序
(55) 在設計程序時,應採納的原則之一是(A) 註:和設計風格有關
A. 程序結構應有助於讀者理解 B. 不限制goto語句的使用
C. 減少或取消註解行 D. 程序越短越好
(56) 下列不屬於軟體調試技術的是(B) 註:P98
A. 強行排錯法 B. 集成測試法 C. 回溯法 D. 原因排除法
(57)下列敘述中,不屬於軟體需求規格說明書的作用的是(D)註:P71
A. 便於用戶、開發人員進行理解和交流 B. 反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據 C. 作為確認測試和驗收的依據 D. 便於開發人員進行需求分析
(58) 在數據流圖(DFD)中,帶有名字的箭頭表示(C)
A. 控製程序的執行順序 B. 模塊之間的調用關系 C. 數據的流向 D. 程序的組成成分
(59) SQL語言又稱為(C)
A. 結構化定義語言 B. 結構化控制語言
C. 結構化查詢語言 D. 結構化操縱語言
(60) 視圖設計一般有3種設計次序,下列不屬於視圖設計的是(B)
A. 自頂向下 B. 由外向內 C. 由內向外 D. 自底向上
(61) 數據結構中,與所使用的計算機無關的是數據的(C)
A. 存儲結構 B. 物理結構 C. 邏輯結構 D. 物理和存儲結構
(62) 棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是(D)
A. ABCED B. DBCEA C. CDABE D. DCBEA
(63) 線性表的順序存儲結構和線性表的鏈式存儲結構分別是(B)
A. 順序存取的存儲結構、順序存取的存儲結構 B. 隨機存取的存儲結構、順序存取的存儲結構 C. 隨機存取的存儲結構、隨機存取的存儲結構 D. 任意存取的存儲結構、任意存取的存儲結構
(64) 在單鏈表中,增加頭結點的目的是(A)
A. 方便運算的實現 B. 使單鏈表至少有一個結點 C. 標識表結點中首結點的位置 D. 說明單鏈表是線性表的鏈式存儲實現
(65) 軟體設計包括軟體的結構、數據介面和過程設計,其中軟體的過程設計是指(B) 註:P73
A. 模塊間的關系 B. 系統結構部件轉換成軟體的過程描述 C. 軟體層次結構 D. 軟體開發過程
(66) 為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為(B) 註:P82
A. PAD圖 B. N-S圖 C. 結構圖 D. 數據流圖
(67) 數據處理的最小單位是(C) 註:數據項不可再分割
A. 數據 B. 數據元素 C. 數據項 D. 數據結構
(68) 下列有關資料庫的描述,正確的是(C) 註:P102
A. 資料庫是一個DBF文件 B. 資料庫是一個關系 C. 資料庫是一個結構化的數據集合 D. 資料庫是一組文件
(69) 單個用戶使用的數據視圖的描述稱為(A) 註:P108
A. 外模式 B. 概念模式 C. 內模式 D. 存儲模式
(70) 需求分析階段的任務是確定(D)
A. 軟體開發方法 B. 軟體開發工具 C. 軟體開發費用 D. 軟體系統功能
(71) 演算法分析的目的是(D) 註:書中沒有總結,但要牢記
A. 找出數據結構的合理性 B. 找出演算法中輸入和輸出之間的關系 C. 分析演算法的易懂性和可靠性 D. 分析演算法的效率以求改進
(72)鏈表不具有的特點是(B)
A.不必事先估計存儲空間 B.可隨機訪問任一元素
C.插入刪除不需要移動元素 D.所需空間與線性表長度成正比
(73) 已知數據表A中每個元素距其最終位置不遠,為節省時間,應採用的演算法是(B)
A. 堆排序 B. 直接插入排序 C. 快速排序 D. 直接選擇排序
(74) 用鏈表表示線性表的優點是(A) 註:因為不需要移動元素
A. 便於插入和刪除操作 B. 數據元素的物理順序與邏輯順序相同 C. 花費的存儲空間較順序存儲少 D. 便於隨機存取
(75) 下列不屬於結構化分析的常用工具的是(D) 註:P67
A. 數據流圖 B. 數據字典 C. 判定樹 D. PAD圖
(76) 軟體開發的結構化生命周期方法將軟體生命周期劃分成(A)
A. 定義、開發、運行維護 B. 設計階段、編程階段、測試階段 C. 總體設計、詳細設計、編程調試 D. 需求分析、功能定義、系統設計
(77) 在軟體工程中,白箱測試法可用於測試程序的內部結構。此方法將程序看做是(C) 註:P87
A. 循環的集合 B. 地址的集合 C. 路徑的集合 D. 目標的集合
(78) 在數據管理技術發展過程中,文件系統與資料庫系統的主要區別是資料庫系統具有(D) 註:數據模型採用關系模型(二維表)
A. 數據無冗餘 B. 數據可共享
C. 專門的數據管理軟體 D. 特定的數據模型
(79) 分布式資料庫系統不具有的特點是(B)
A. 分布式 B. 數據冗餘
C. 數據分布性和邏輯整體性 D. 位置透明性和復制透明性
(80) 下列說法中,不屬於數據模型所描述的內容的是(C) 註:P110
A. 數據結構 B. 數據操作 C. 數據查詢 D. 數據約束
(81)根據數據結構中各數據元素之間前後件關系的復雜程度,一般將數據結構分成(C)
A.動態結構和靜態結構 B.緊湊結構和非緊湊結構
C.線性結構和非線性結構 D.內部結構和外部結構
(82)下列敘述中,錯誤的是(B)
A.數據的存儲結構與數據處理的效率密切相關 B.數據的存儲結構與數據處理的效率無關 C.數據的存儲結構在計算機中所佔的空間不一定是連續的 D.一種數據的邏輯結構可以有多種存儲結構
(83)線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是(D)
A.每個元素都有一個直接前件和直接後件 B.線性表中至少要有一個元素 C.表中諸元素的排列順序必須是由小到大或由大到
D.除第一個元素和最後一個元素外,其餘每個元素都有一個且只有一個直接前件和直接後件
(84)線性表若採用鏈式存儲結構時,要求內存中可用存儲單元的地址(D)
A.必須是連續的 B.部分地址必須是連續的
C.一定是不連續的 D.連續不連續都可以
(85)棧通常採用的兩種存儲結構是(A)
A.順序存儲結構和鏈式存儲結構 B.散列方式和索引方式
C.鏈表存儲結構和數組 D.線性存儲結構和非線性存儲結構
(86)下列數據結構中,按先進後出原則組織數據的是(B)
A.線性鏈表 B.棧 C.循環鏈表 D.順序表
(87)樹是結點的集合,它的根結點數目是(C)
A.有且只有1 B.1或多於1 C.0或1 D.至少2
(88)具有3個結點的二叉樹有(D)
A.2種形態 B.4種形態 C.7種形態 D. 5種形態
(89)設一棵二叉樹中有3個葉子結點,有8個度為1的結點,則該二叉樹中總的結點數為(B)
A. 12 B. 13 C.14 D. 15
(90)在結構化程序設計思想提出之前,在程序設計中曾強調程序的效率,現在,與程序的效率相比,人們更重視程序的(C)
A.安全性 B.一致性 C.可理解性 D.合理性
(91)為了提高測試的效率,應該 (D) 註:P85
A.隨機選取測試數據B.取一切可能的輸入數據作為測試數據C.在完成編碼以後制定軟體的測試計劃 D.集中對付那些錯誤群集的程序
(92)軟體生命周期中所花費用最多的階段是(D)
A.詳細設計 B.軟體編碼 C.軟體測試 D.軟體維護
二、填空題
(1) 演算法的復雜度主要包括______復雜度和空間復雜度。 答:時間
(2) 數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的______。答:存儲結構#物理結構
(3) 若按功能劃分,軟體測試的方法通常分為白盒測試方法和______測試方法。答:黑盒
(4) 如果一個工人可管理多個設施,而一個設施只被一個工人管理,則實體"工人"與實體"設備"之間存在______聯系。
答:一對多#1:N#1:n
(5) 關系資料庫管理系統能實現的專門關系運算包括選擇、連接和______。 答:投影
(6) 在先左後右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和後序遍歷。答:中序
(7) 結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。 答:模塊化
(8) 軟體的調試方法主要有:強行排錯法、______和原因排除法。答:回溯法
(9) 資料庫系統的三級模式分別為______模式、內部級模式與外部級模式。答:概念#概念級
(10) 數據字典是各類數據描述的集合,它通常包括5個部分,即數據項、數據結構、數據流、______和處理過程。答:數據存儲
(11) 設一棵完全二叉樹共有500個結點,則在該二叉樹中有______個葉子結點。答:250
(12) 在最壞情況下,冒泡排序的時間復雜度為______。 答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)
(13) 面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個______。答:實體
(14) 軟體的需求分析階段的工作,可以概括為四個方面:______、需求分析、編寫需求規格說明書和需求評審。 答:需求獲取
(15) ______是資料庫應用的核心。 答:資料庫設計
(16) 數據結構包括數據的______結構和數據的存儲結構。
答:邏輯
(17) 軟體工程研究的內容主要包括:______技術和軟體工程管理。答:軟體開發 註:P64
(18) 與結構化需求分析方法相對應的是______方法。
答:結構化設計
(19) 關系模型的完整性規則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。答:參照完整性
(20) 數據模型按不同的應用層次分為三種類型,它們是______數據模型、邏輯數據模型和物理數據模型。答:概念 註:P110
(21) 棧的基本運算有三種:入棧、退棧和______。
答:讀棧頂元素#讀棧頂的元素#讀出棧頂元素
(22) 在面向對象方法中,信息隱蔽是通過對象的______性來實現的。答:封裝
(23) 數據流的類型有______和事務型。 答:變換型 註:P77
(24) 資料庫系統中實現各種數據管理功能的核心軟體稱為______。答:資料庫管理系統#DBMS 註:要牢記,重要
(25) 關系模型的數據操縱即是建立在關繫上的數據操縱,一般有______、增加、刪除和修改四種操作。答:查詢 註:要牢記
(26) 實現演算法所需的存儲單元多少和演算法的工作量大小分別稱為演算法的 ______。 答:空間復雜度和時間復雜度
(27) 數據結構包括數據的邏輯結構、數據的 ______以及對數據的操作運算。答:存儲結構 註:P7
(28) 一個類可以從直接或間接的祖先中繼承所有屬性和方法。採用這個方法提高了軟體的______。答:可重用性
(29) 面向對象的模型中,最基本的概念是對象和 ______。 答:類
(30) 軟體維護活動包括以下幾類:改正性維護、適應性維護、______維護和預防性維護。答:完善性 註:要牢記,書中沒有提到
(31) 演算法的基本特徵是可行性、確定性、______和擁有足夠的情報。答:有窮性
(32) 順序存儲方法是把邏輯上相鄰的結點存儲在物理位置______的存儲單元中。答:相鄰
(33) Jackson結構化程序設計方法是英國的M.Jackson提出的,它是一種面向______的設計方法。答:數據結構 註:P67
(34) 資料庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
答:概念設計階段#資料庫概念設計階段
(35) 資料庫保護分為:安全性控制 、______、並發性控制和數據的恢復。答:完整性控制 註:要牢記
(36) 測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發現錯誤的位置並改正錯誤。答:調試
(37) 在最壞情況下,堆排序需要比較的次數為______。
答:O(nlog2n)
(38) 若串s="Program",則其子串的數目是______。答:29
(39) 一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯系屬於______的聯系。
答:1對多#1:N
(40) 資料庫管理系統常見的數據模型有層次模型、網狀模型和______三種。答:關系模型
(41)數據的邏輯結構有線性結構和_______兩大類。 答非線性結構
(42)數據結構分為邏輯結構與存儲結構,線性鏈表屬於_______。答:存儲結構
(43)數據的基本單位是_______。答:元素
(44)長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為______。
答:n/2
(45)當循環隊列非空且隊尾指針等於隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為______。 答:上溢
(46)在面向對象方法中,類之間共享屬性和操作的機制稱為_______。答:繼承
C. C語言函數返回2個值
首先比喻下函數是什麼吧?
函數簡單的說就是一個黑箱子似的製造機器,你給他原料(輸入參數)它給你製造出產品(函數返回的結果)。
所以函數的返回值一般就是你想要的結果。當然有些函數沒有返回值,比如輸出一句話的函數,這函數就沒有返回值。c++用void型表示。但是求兩個數的最大值函數int
max(int
a,
int
b)的返回值就可以是你求的最大的值。
int
max(int
a,
intb)
{
if(a>b)
{
return
a;
}
else
{
return
b;
}
}
其中return返回的值就是函數的返回值。
D. C語言舉例說明實體之間的聯系多對多
比如在常見的訂單管理資料庫當中「產品」表和「訂單」表之間的關系。單個訂單中可以包含多個產品。另一方面,一個產品可能出現在多個訂單中。因此,對於「訂單」表中的每條記錄,都可能與「產品」表中的多條記錄對應。此外,對於「產品」表中的每條記錄,都可以與「訂單」表中的多條記錄對應。這種關系稱為多對多關系,因為對於任何產品,都可以有多個訂單,而對於任何訂單,都可以包含許多產品。
請注意,在數據模型設計時,應該對多對多關系進行規范化,否則會發生數據冗餘、更新錯誤等問題。規范化的基本原則是,將兩個實體分別對應一個關系模型,然後用第三個關系來表達兩個實體之間的聯系,該關系模型一般包含兩個實體的主鍵。它將多對多關系劃分為兩個一對多關系。可以建立一個「訂單明細」表來鏈接兩個實體。
E. 計算機二級c語言知識點
2017計算機二級c語言知識點精選
計算機二級C語言考試內容是什麼?為幫助大家更好備考3月計算機考試,我為大家分享計算機C語言二級考試知識點如下:
第一章 數據結構與演算法
1.1 演算法
1.演算法的基本概念
(1) 概念:演算法是指一系列解決問題的清晰指令。
(2) 4個基本特徵:可行性、確定性、有窮性、擁有足夠的情報。
(3) 兩種基本要素:對數據對象的運算和操作、演算法的控制結構(運算和操作時問的順序)。
(4) 設計的基本方法:列舉法、歸納法、遞推法、遞歸法、減半遞推技術和回溯法。
2.演算法的復雜度
(1) 演算法的時間復雜度:執行演算法所需要的計算工作量。
(2) 演算法的空間復雜度:執行演算法所需的內存空間。
1.2 數據結構的基本概念
數據結構指相互有關聯的數據元素的集合,即數據的組織形式。其中邏輯結構反映數據元素之間邏輯關系;存儲結構為數據的邏輯結構在計算機存儲空間中的存放形式,有順序存儲、鏈式存儲、索引存儲和散列存儲4種方式。
數據結構按各元素之間前後件關系的復雜度可劃分為:
(1) 線性結構:有且只有一個根節點,且每個節點最多有一個直接前驅和一個直接後繼的非空數據結構。
(2) 非線性結構:不滿足線性結構的數據結構。
1.3 線性表及其順序存儲結構
1.線性表的基本概念
線性結構又稱線性表,線性表是最簡單也是最常用的一種數據結構。
2.線性表的順序存儲結構
元素所佔的存儲空間必須連續。
元素在存儲空間的位置是按邏輯順序存放的。
3.線性表的插入運算
在第i個元素之前插入一個新元素的步驟如下:
步驟一:把原來第n個節點至第i個節點依次往後移一個元素位置。
步驟二:把新節點放在第i個位置上。
步驟三:修正線性表的節點個數。
在最壞情況下,即插入元素在第一個位置,線性表中所有元素均需要移動。
4.線性表的刪除運算
刪除第i個位置的元素的步驟如下:
步驟一:把第i個元素之後不包括第i個元素的n-i個元素依次前移一個位置;
步驟二:修正線性表的結點個數。
1.4 棧和隊列
1.棧及其基本運算
(1) 基本概念:棧是一種特殊的線性表,其插入運算與刪除運算都只在線性表的一端進行,也被稱為「先進後出」表或「後進先出」表。
棧頂:允許插入與刪除的一端。
棧底:棧頂的另一端。
空棧:棧中沒有元素的棧。
(2) 特點。
棧頂元素是最後插入和最早被刪除的元素。
棧底元素是最早插入和最後被刪除的元素。
棧有記憶作用。
在順序存儲結構下,棧的插入和刪除運算不需移動表中其他數據元素。
棧頂指針top動態反映了棧中元素的變化情況
(3) 順序存儲和運算:入棧運算、退棧運算和讀棧頂運算。
2.隊列及其基本運算
(1) 基本概念:隊列是指允許在一端進行插入,在另一端進行刪除的線性表,又稱「先進先出」的線性表。
隊尾:允許插入的一端,用尾指針指向隊尾元素。
排頭:允許刪除的一端,用頭指針指向頭元素的前一位置。
(2) 循環隊列及其運算。
所謂循環隊列,就是將隊列存儲空間的最後一個位置繞到第一個位置,形成邏輯上的環狀空間。
入隊運算是指在循環隊列的隊尾加入一個新元素。
當循環隊列非空(s=1)且隊尾指針等於隊頭指針時,說明循環隊列已滿,不能進行人隊運算,這種情況稱為「上溢」。
退隊運算是指在循環隊列的隊頭位置退出一個元素並賦給指定的變數。首先將隊頭指針進一,然後將排頭指針指向的元素賦給指定的變數。當循環隊列為空(s=0)時,不能進行退隊運算,這種情況稱為「下溢」。
1.5 線性鏈表
在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用於存放數據元素值,稱為數據域;另一部分用於存放指針,稱為指針域。其中指針用於指向該結點的前一個或後一個結點(即前件或後件)。
1.6 樹和二叉樹
1.樹的基本概念
樹是簡單的非線性結構,樹中有且僅有一個沒有前驅的節點稱為「根」,其餘節點分成m個互不相交的有限集合T1,T2,…,T}mm,每個集合又是一棵樹,稱T1,T2,…,T}mm為根結點的子樹。
父節點:每一個節點只有一個前件,無前件的節點只有一個,稱為樹的根結點(簡稱樹的根)。
子節點:每~個節點可以後多個後件,無後件的節點稱為葉子節點。
樹的度:所有節點最大的度。
樹的深度:樹的最大層次。
2.二叉樹的定義及其基本性質
(1) 二叉樹的定義:二叉樹是一種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由一個根節點及兩棵互不相交的左右二叉子樹組成。可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有如下兩個特點:
二叉樹可為空,空的二叉樹無節點,非空二叉樹有且只有一個根結點;
每個節點最多可有兩棵子樹,稱為左子樹和右子樹。
(2) 二叉樹的基本性質。
性質1:在二叉樹的第k層上至多有2k-1個結點(k≥1)。
性質2:深度為m的二叉樹至多有2m-1個結點。
性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個。
性質4:具有n個結點的完全二叉樹的深度至少為[log2n]+1,其中[log2n]表示log2n的整數部分。
3.滿二叉樹與完全二叉樹
(1) 滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最後一層外,每一層上的所有結點都有兩個子結點。滿二叉樹在其第i層上有2i-1個結點。
從上面滿二叉樹定義可知,二叉樹的每一層上的結點數必須都達到最大,否則就不是滿二叉樹。深度為m的滿二叉樹有2m-1個結點。
(2) 完全二叉樹:完全二叉樹是指這樣的二叉樹:除最後一層外,每一層上的結點數均達到最大值;在最後一層上只缺少右邊的若干結點。
如果—棵具有n個結點的深度為k的二叉樹,它的每—個結點都與深度為k的滿二叉樹中編號為1~n的結點——對應。
3.二叉樹的存儲結構
二叉樹通常採用鏈式存儲結構,存儲節點由數據域和指針域(左指針域和右指針域)組成。二叉樹的鏈式存儲結構也稱二叉鏈表,對滿二叉樹和完全二叉樹可按層次進行順序存儲。
4.二叉樹的遍歷
二叉樹的遍歷是指不重復地訪問二叉樹中所有節點,主要指非空二叉樹,對於空二叉樹則結束返回。二叉樹的遍歷包括前序遍歷、中序遍歷和後序遍歷。
(1) 前序遍歷。
前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹;並且,在遍歷左右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執行空操作;否則①訪問根結點;②前序遍歷左子樹;③前序遍歷右子樹。
(2) 中序遍歷。
中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹;並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。中序遍歷描述為:若二叉樹為空,則執行空操作;否則①中序遍歷左子樹;②訪問根結點;③中序遍歷右子樹。
(3) 後序遍歷。
後序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點,並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。後序遍歷描述為:若二叉樹為空,則執行空操作;否則①後序遍歷左子樹;②後序遍歷右子樹;③訪問根結點。
1.7 查找技術
(1) 順序查找:在線性表中查找指定的元素。
(2) 最壞情況下,最後一個元素才是要找的元素,則需要與線性表中所有元素比較,比較次數為n。
(3) 二分查找:二分查找也稱折半查找,它是一種高效率的查找方法。但二分查找有條件限制,它要求表必須用順序存儲結構,且表中元素必須按關鍵字有序(升序或降序均可)排列。對長度為n的有序線性表,在最壞情況下,二分查找法只需比較log2n次。
1.8 排序技術
(1) 交換類排序法。
冒泡排序:通過對待排序序列從後向前或從前向後,依次比較相鄰元素的排序碼,若發現逆序則交換,使較大的元素逐漸從前部移向後部或較小的元素逐漸從後部移向前部,直到所有元素有序為止。在最壞情況下,對長度為n的線性表排序,冒泡排序需要比較的次數為n(n-1)/2。
快速排序:是迄今為止所有內排序演算法中速度最快的一種。它的基本思想是:任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元索的排序碼均小於或等於基準元素的排序碼,右子序列的排序碼則大於基準元素的排序碼,然後分別對兩個子序列繼續進行排序,直至整個序列有序。最壞情況下,即每次劃分,只得到一個序列,時間效率為O(n2)。
(2) 插人類排序法。
簡單插入排序法:把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。在最壞情況下,即初始排序序列是逆序的情況下,比較次數為n(n-1)/2,移動次數為n(n-1)/2。
希爾排序法:先將整個待排元素序列分割成若干個子序列(由相隔某個「增量」的元素組成的)分別進行直接插入排序。待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。
(3) 選擇類排序法。
簡單選擇排序法:掃描整個線性表。從中選出最小的元素。將它交換到表的最前面;然後對剩下的子表採用同樣的方法,直到子表空為止。最壞情況下需要比較n(n-1)/2次。
堆排序的方法:首先將一個無序序列建成堆;然後將堆頂元素(序列中的最大項)與堆中最後一個元素交換(最大項應該在序列的最後)。不考慮已經換到最後的那個元素,只考慮前n-1個元素構成的子序列,將該子序列調整為堆。反復做步驟②,直到剩下的子序列空為止。在最壞情況下,堆排序法需要比較的次數為0(nlog2n)
第二章 程序設計基礎
2.1 程序設計方法與風格
(1)設計方法:指設計、編制、調試程序的方法和過程,主要有結構化程序設計方法、軟體工程方法和面向對象方法。
(2)設計風格:良好的'設計風格要注重源程序文檔化、數據說明方法、語句的結構和輸入輸出。
2.2 結構化程序設計
1.結構化程序設計的原則
結構化程序設計強調程序設計風格和程序結構的規范化,提倡清晰的結構。。
(1)自頂向下:即先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。
(2)逐步求精:對復雜問題,應設計一些子目標做過渡,逐步細化。
(3)模塊化:把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊;
(4)限制使用GOT0語句。
2.結構化程序的基本結構與特點
(1)順序結構:自始至終嚴格按照程序中語句的先後順序逐條執行,是最基本、最普遍的結構形式。
(2)選擇結構:又稱為分支結構,包括簡單選擇和多分支選擇結構。
(3)重復結構:又稱為循環結構,根據給定的條件,判斷是否需要重復執行某一相同的或類似的程序段。
結構化程序設計中,應注意事項:
(1)使用程序設計語言中的順序、選擇、循環等有限的控制結構表示程序的控制邏輯。
(2)選用的控制結構只准許有一個人口和一個出口。
(3)程序語言組成容易識別的塊,每塊只有一個入口和一個出口。
(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現。
(5)語言中所沒有的控制結構,應該採用前後一致的方法來模擬。
(6)盡量避免GOT0語句的使用。
2.3 面向對象的程序設計
面向對象方法的本質是主張從客觀世界固有的事物出發來構造系統,強調建立的系統能映射問題域。
對象:用來表示客觀世界中任何實體,可以是任何有明確邊界和意義的東西。
類:具有共同屬性、共同方法的對象的集合。
實例:一個具體對象就是其對應分類的一個實例。
消息:實例間傳遞的信息,它統一了數據流和控制流。
繼承:使用已有的類定義作為基礎建立新類的定義技術。
多態性:指對象根據所接受的信息而作出動作,同樣的信息被不同的對象接收時有不同行動的現象。面向對象程序設計的優點:與人類習慣的思維方法一致、穩定性好、可重用性好、易於開發大型軟體產品、可維護性好。
第三章 軟體工程基礎
3.1 軟體工程基本概念
1.軟體的定義與特點
(1)定義:軟體是指與計算機系統的操作有關的計算機程序、規程、規則,以及可能有的文件、文檔和數據。
(2)特點。
是邏輯實體,有抽象性。
生產沒有明顯的製作過程。
運行使用期間不存在磨損、老化問題。
開發、運行對計算機系統有依賴性,受計算機系統的限制,導致了軟體移植問題。
復雜性較高,成本昂貴。
開發涉及諸多社會因素。
2.軟體的分類
軟體可分應用軟體、系統軟體和支撐軟體3類。
(1)應用軟體是特定應用領域內專用的軟體。
(2)系統軟體居於計算機系統中最靠近硬體的一層,是計算機管理自身資源,提高計算機使用效率並為計算機用戶提供各種服務的軟體。
(3)支撐軟體介於系統軟體和應用軟體之間,是支援其它軟體的開發與維護的軟體。
3.軟體危機與軟體工程
軟體危機指在計算機軟體的開發和維護中遇到的一系列嚴重問題。軟體工程是應用於計算機軟體的定義、開發和維護的一整套方法、工具、文檔、實踐標准和工序,包括軟體開發技術和軟體工程管理。
4.軟體生命周期
軟體產品從提出、實現、使用維護到停止使用的過程稱為軟體生命周期。
在國家標准中,軟體生命周期劃分為8個階段①軟體定義期:包括問題定義、可行性研究和需求分析3個階段。②軟體開發期:包括概要設計、詳細設計、實現和測試4個階段。③運行維護期:即運行維護階段。
5.軟體工程的原則
軟體工程的原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。
3.2 結構化分析方法
需求分析的任務是發現需求、求精、建模和定義需求的過程,可概括為:需求獲取、需求分析、編寫需求規格說明書和需求評審。
1.常用的分析方法
結構化分析方法:其實質著眼於數據流,自頂向下,逐層分解,建立系統的處理流程。
面向對象分析方法。
2.結構化分析常用工具
結構化分析常用工具包括數據流圖、數字字典(核心方法)、判斷樹和判斷表。
(1)數據流圖:即DFD圖,以圖形的方式描繪數據在系統中流動和處理的過程,它只反映系統必須完成的邏輯功能。是一種功能模型。
符號名稱作用:
箭頭代表數據流,沿箭頭方向傳送數據的通道
圓或橢圓代表加工,輸入數據經加工變換產生輸出
雙杠代表存儲文件,表示處理過程中存放各種數據文件
方框代表源和潭,表示系統和環境的介面
(2)數據字典:結構化分析方法的核心。數據字典是對所有與系統相關的數據元素的一個有組織的列表。以及精確的、嚴格的定義,使得用戶和系統分析員對於輸入、輸出、存儲成分和中間計算結果有共同的理解。
(3)判定樹:使用判定樹進行描述時,應先從問題定義的文字描述中分清判定的條件和判定的結論,根據描述材料中的連接詞找出判定條件之問的從屬關系、並列關系、選擇關系,根據它們構造判定樹。
(4)判定表:與判定樹相似,當數據流圖中的加工要依賴於多個邏輯條件的取值,即完成該加工的一組動作是由於某一組條件取值的組合引發的,使用判定表比較適宜。
3.軟體需求規格說明書
軟體需求規格說明書是需求分析階段的最後成果,是軟體開發的重要文檔之一。
(1)軟體需求規格說明書的作用:①便於用戶、開發人員進行理解和交流;②反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據;③作為確認測試和驗收的依據。
(2)軟體需求規格說明書的內容:①概述;②數據描述;③功能描述;④性能描述;⑤參考文獻;⑥附錄。
(3)軟體需求規格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追蹤性。
3.3 結構化設計方法
1.軟體設計的基本概念和方法
軟體沒計是一個把軟體需求轉換為軟體表示的過程。
(1)基本原理:抽象、模塊化、信息隱藏、模塊獨立性(度量標准:耦合性和內聚性,高耦合、低內聚)。
(2)基本思想:將軟體設計成由相對獨立、單一功能的模塊組成的結構。
2.概要設計
(1)4個任務:設計軟體系統結構、數據結構及資料庫設計、編寫概要設計文檔、概要設計文檔評審。
(2)面向數據流的設計方法:數據流圖的信息分為交換流和事物流,結構形式有交換型和事務型。
3.詳細設計的工具
詳細設計的工具包括:
圖形工具:程序流程圖、N-S、PAD、HIPO。
表格工具:判定表。
語言工具:PDL(偽碼)。
3.4 軟體測試
1.目的
為了發現錯誤而執行程序的過程。
2.准則
所有測試應追溯到用戶需求。
嚴格執行測試計劃,排除測試的隨意性。
充分注意測試中的群集現象。
程序員應避免檢查自己的程序。
窮舉測試不可能。
妥善保存設計計劃、測試用例、出錯統計和最終分析報告。
3.軟體測試技術和方法
軟體測試的方法按是否需要執行被測軟體的角度,可分為靜態測試和動態測試,按功能分為白盒測試和黑盒測試。
(1)白盒測試:根據程序的內部邏輯設計測試用例,主要方法有邏輯覆蓋測試、基本路徑測試等。
(2)黑盒測試:根據規格說明書的功能來設計測試用例,主要診斷方法有等價劃分法、邊界值分析法、錯誤推測法、因果圖法等,主要用於軟體確認測試。
4.軟體測試的實施
軟體測試是保證軟體質量的重要手段,軟體測試是一個過程,其測試流程是該過程規定的程序,目的是使軟體測試工作系統化。
軟體測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統測試。
單元測試是對軟體設計的最小單位——模塊(程序單元)進行正確性檢驗測試。
單元測試的目的是發現各模塊內部可能存在的各種錯誤。
單元測試的依據是詳細的設計說明書和源程序。
單元測試的技術可以採用靜態分析和動態測試。
3.5 程序的調試
(1)任務:診斷和改正程序中的錯誤。
(2)調試方法:強行排錯法、回溯法和原因排除法。
第四章 資料庫設計基礎
4.1 資料庫系統的基本概念
(1) 數據(Data):描述事物的符號記錄。
(2) 資料庫(DataBase):長期存儲在計算機內的、有組織的、可共享的數據集合。
(3) 資料庫管理系統的概念
資料庫管理系統(DataBase Management System,DBMS)是資料庫的機構,它是一種系統軟體,負責資料庫中的數據組織、數據操作、數據維護、數據控制及保護和數據服務等。為完成以上6個功能,DBMS提供了相應的數據語言;數據定義語言(負責數據的模式定義與數據的物理存取構建);數據操縱語言(負責數據的操縱);數據控制語言(負責數據完整性、安全性的定義)。資料庫管理系統是資料庫系統的核心,它位於用戶和操作系統之間,從軟體分類的角度來說,屬於系統軟體。
(4) 資料庫技術發展經歷了3個階段。
人工管理階段→文件系統階段→資料庫系統階段
(5) 資料庫系統的特點:集成性、高共享性、低冗餘性、數據獨立性、數據統一管理與控制等。
(6) 資料庫系統的內部機構體系:三級模式(概念模式、內模式、外模式)和二級映射(外模式/概念模式的映射、概念模式/內模式的映射)構成了資料庫系統內部的抽象結構體系。
4.2 數據模型
數據模型是數據特徵的抽象,從抽象層次上描述了系統的靜態特徵、動態行為和約束條件,描述的內容有數據結構、數據操作和數據約束。有3個層次:概念數據模型、邏輯數據模型和物理數據模型。
(1) E—R模型:提供了表示實體、屬性和聯系的方法。實體間聯系有「一對一」、「一對多」和「多對多」。
(2) E-R模型用E-R圖來表示。
(3) 層次模型:利用樹形結構表示實體及其之問聯系。其中節點是實體,樹枝是聯系,從上到下是一對多關系。
(4) 網狀模型:用網狀結構表示實體及其之間聯系。是層次模型的擴展。網路模型以記錄型為節點,反映現實中較為復雜的事物聯系。
(5) 關系模型:採用二維表(由表框架和表的元組組成)來表示,可進行數據查詢、增加、刪除及修改操作。關系模型允許定義「實體完整性」、「參照完整性」和「用戶定義的完整性」三種約束。
鍵(碼):二維表中唯一能標識元組的最小屬性集。
候選鍵(候選碼):二維表中可能有的多個鍵。
主鍵:被選取的一個使用的鍵。
4.3 關系代數
(1) 關系代數的基本運算:投影、選擇、笛卡爾積。
(2) 關系代數的擴充運算:交、連接與自然連接、除。
4.4 資料庫設計與管理
1.資料庫設計概述
基本思想:過程迭代和逐步求精。
方法:面向數據的方法和面向過程的方法。
設計過程:需求分析→概念設計→邏輯設計→物理設計→編碼→測試→運行→進→步修改。
2.資料庫設計的需求分析
需求收集和分析是資料庫設計的第一階段,常用結構化分析方法(自頂向下、逐層分解)和面向對象的方法,主要工作有繪制數據流程圖、數據分析、功能分析、確定功能處理模塊和數據間關系。
數據字典:包括數據項、數據結構、數據流、數據存儲和處理過程,是對系統中數據的詳盡描述。
3.資料庫的設計
(1) 資料庫的概念設計:分析數據問內在的語義關聯,以建立數據的抽象模型。
(2) 資料庫的邏輯設計:從E-R圖向關系模型轉換,邏輯模式規范化,關系視圖設計可以根據用戶需求隨時創建。實體轉換為元組,屬性轉換為關系的屬性,聯系轉換為關系。
(3) 資料庫的物理設計:是數據在物理設備上的存儲結構與存取方法,目的是對資料庫內部物理結構作出調整並選擇合理的存取路徑,以提高速度和存儲空間。
4.資料庫管理
資料庫管理包括資料庫的建立、資料庫的調整、資料庫的重組、資料庫的安全性與完整性控制、資料庫故障恢復和資料庫的監控。
;F. c語言常見的數據結構有哪些
1、線性數據結構
元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表。
2、樹形結構
結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆。
3、圖形結構
在圖形結構中,允許多個結點之間相關,稱為“多對多”關系。
(1)線性數據結構:元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表
(2)樹形結構:結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆
(3)圖形結構:在圖形結構中,允許多個結點之間相關,稱為“多對多”關系