Ⅰ 計算機c語言中什麼是數據的線性結構和非線性結構
一、線性結構是一個有序數據元素的集合。 其中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的。常用的線性結構有:線性表,棧,隊列,雙隊列,數組,串。
二、非線性結構中各個數據元素不再保持在一個線性序列中,每個數據元素可能與零個或者多個其他數據元素發生聯系。根據關系的不同,可分為層次結構和群結構。
1、層次結構是按層次劃分的數據元素的集合,指定層次上元素可以是零個或多個處於下一個層次上的直接所屬下層元素。最典型的層次結構即為樹形結構,比如Linux文件系統即為樹形結構。
2、群結構中所有的元素之間無順序關系,最典型的群結構是集合和圖。
Ⅱ 線性與非線性的方式存儲數據的差別
個人以為:
1.線性儲存主要是時間復雜度比較小,而且代碼可讀性也比較好,非線性結構實現起來很多時候都是以遞歸實現,所以能用線性儲存的數據最好不用非線性結構.
2.非線性結構就是存儲聯系復雜的數據,這些數據之間一般都有較大的相關性,線性鏈表是不能實現的.
Ⅲ 順序存儲方式只能用於存儲線性結構嗎
不是。
順序存儲方式不僅能用於存儲線性結構,還可以用來存放非線性結構,例如完全二叉樹是屬於非線性結構,但其最佳存儲方式是順序存儲方式。
數據的邏輯結構包括線性結構、樹、圖、集合這四種,在線性結構裡面又有線性表、棧、隊列等等。而數據的存儲結構只有兩種:順序存儲結構和鏈式存儲結構,這兩種存儲結構,前面一個是利用數據元素在存儲器中的相對位置表示其邏輯結構,另外一個是用指針來表示其邏輯關系。
順序存儲結構
的主要優點是節省存儲空間,因為分配給數據的存儲單元全用存放結點的數據(不考慮c/c++語言中數組需指定大小的情況),結點之間的邏輯關系沒有佔用額外的存儲空間。
採用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。但順序存儲方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。
Ⅳ 什麼是線性結構,什麼是非線性結構
線性結構是一個有序數據元素的集合。常用的線性結構有:線性表,棧,隊列,雙隊列,數組,串。
非線性結構,數學用語,其邏輯特徵是一個結點元素可能有多個直接前趨和多個直接後繼。常見的非線性結構有:二維數組,多維數組,廣義表,樹(二叉樹等)。
傳統文本(例如書籍中的文章和計算機的文本文件)都是線性結構,閱讀是需要注意順序閱讀,而超文本則是一個非線性結構。在製作文本時,可將寫作素材按內部聯系劃分成不同關系的單元,然後用製作工具將其組成一個網型結構。閱讀時,不必按線性方式順序往下讀,而是有選擇的閱讀自己感興趣的部分。
在超文本文件中,可以用一些單詞,短語或圖像作為連接點。這些連接點通常同其他顏色顯示或加下劃線來區分,這些形式的文件就成為超文本文件。通過非線性結構,可能實現頁面任意跳轉。
有一個以上根結點的數據結構一定是非線性結構。
拓展資料
線性結構特徵:
1、集合中必存在唯一的一個「第一個元素」;
2、集合中必存在唯一的一個」最後的元素「;
3、除最後元素之外,其它數據元素均有唯一的」後繼「;
4、除第一元素之外,其它數據元素均有唯一的」前驅「。
數據結構中線性結構指的是數據元素之間存在著「一對一」的線性關系的數據結構。
如(a0,a1,a2,.....,an),a0為第一個元素,an為最後一個元素,此集合即為一個線性結構的集合。
相對應於線性結構,非線性結構的邏輯特徵是一個結點元素可能對應多個直接前驅和多個後繼。
Ⅳ 線性結構和非線性結構的區別是什麼
1、存儲方式不同。
在線性數據結構中,數據以線性順序組織,其中元素一個接一個地鏈接。
在非線性數據結構中,數據元素不是按順序存儲的,而是按層次關系存儲的。
2、遍歷數據不同。
在線性數據結構中遍歷數據很容易,因為它可以使所有數據元素一次遍歷,但是一次只能直接訪問一個元素。
在非線性數據結構中,節點不是順序訪問的,並且不能一次遍歷。
3、內存利用率不同。
在線性數據結構中,並沒有為我們提供有效的內存利用率。
而在非線性數據結構中,可以獲得高效的內存利用率。
4、復雜度不同。
線性數據結構相對簡單,並且易於使用。
非線性數據結構是復雜的數據結構,在某種程度上證明是棘手的。
Ⅵ 數據結構中線性結構與非線性結構的特性與區別
一、兩者的特性不同:
1、線性結構的特性:集合中必存在唯一的一個「第一個元素」;集合中必存在唯一的一個「最後的元素」;除最後元素之外,其它數據元素均有唯一的「後繼」;除第一元素之外,其它數據元素均有唯一的「前驅」。
2、非線性結構的特性:通過非線性結構,可能實現頁面任意跳轉。
二、兩者的概述不同:
1、線性結構的概述:線性結構是一個有序數據元素的集合。常用的線性結構有線性表,棧,隊列,雙隊列,串。關於廣義表、數組,是一種非線性的數據結構。
2、非線性結構的概述:非線性結構,數學用語,其邏輯特徵是一個結點元素可能有多個直接前驅和多個直接後繼。
三、兩者的要求不同:
1、線性結構的要求:數據結構課程中數據的邏輯結構分為線性結構和非線性結構。對於數據結構課程而言,簡單地說,線性結構是n個數據元素的有序(次序)集合。
2、非線性結構的要求:有一個以上根結點的數據結構一定是非線性結構。在超文本文件中,可以用一些單詞,短語或圖像作為連接點。這些連接點通常同其他顏色顯示或加下劃線來區分,這些形式的文件就成為超文本文件。
Ⅶ 非線性結構只能依賴鏈式存儲實現嗎
不是,該說法絕對化。非線性結構可以是順序儲存結構,也可以是鏈式儲存結構。
非線性結構中各個數據元素不再保持在一個線性序列中,每個數據元素可能與零個或者多個其他數據元素發生聯系。根據關系的不同,可分為層次結構和群結構。
常見的非線性結構有:二維數組,多維數組,廣義表,樹(二叉樹等),圖。(其中多維數組是由多個一維數組組成的,所以不再是線性結構)
順序存儲方法和鏈接存儲方法的詳細解釋:
順序存儲方法它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常藉助於程序設計語言中的數組來實現。
鏈接存儲方法它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針欄位表示的。由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常藉助於程序設計語言中的指針類型來實現。
以上內容參考:網路-存儲結構
Ⅷ 線性結構有哪幾種存儲結構
數據元素之間的關系有兩種不同的表示方法:順序映象和非順序映象,並由此得到兩種不同的存儲結構:順序存儲結構和鏈式存儲結構。 順序存儲方法:它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常藉助於程序設計語言中的數組來實現。 鏈接存儲方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針欄位表示的。由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常藉助於程序設計語言中的指針類型來實現。 順序存儲和鏈接存儲是數據的兩種最基本的存儲結構。 在順序存儲中,每個存侗含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來彭線性表的順序存儲中,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元著數組中的下標位置為i一1,它的後繼元素在對應數組中的下標位置為i+1。在鏈接存個存儲結點不僅含有所存元素本身的信息,而且含有元素之間邏輯關系的信息。 其中data表示值域,用來存儲.一個元素。Pl,p2,…,Pill(1n≥1)均為指針域,每個韋值為其對應的後繼元素或前驅元素所在結點(以後簡稱為後繼結點或前驅結點)的存通過結點的指針域(又稱為鏈域)可以訪問到對應的後繼結點或前驅結點,該後繼結一《結點稱為指針域(鏈域)所指向(鏈接)的結點。若一一個結點中的某個指針域不需要指f點,則令它的值為空,用常量N-LILL表示,NIJ】上在iostream.h中被定義為數值0。 數據的鏈接存儲表示又被稱為鏈接表。當鏈接表中的每個結點只含有一個指針稱為單鏈表。
Ⅸ 如何根據數據的邏輯結構設計相應的存儲結構
邏輯結構將的是關系,比如集合,線性,非線性,都是元素或者結點之間的關系,而存儲結構講的是數據元素的表示和關系的表示.前一個是抽象的,後一個是具體的,可以實現的.
同一種邏輯結構採用不同的存儲方法,可以得到不同的存儲結構.比如線性結構採用採用順序存儲方法,就可以得到順序表,採用鏈式存儲方法就可以得到鏈表.