線性表順序儲存結構地址連續怎麼理解

2023-05-16 13:00:12 字數 2994 閱讀 9795

1樓:匿名使用者

這表明線性表中的每個元素所在的地址是**連續**的。比如一個型別t的大小為s位元組,那麼這個型別的線性表中,假設第一個位元組為b,那麼顯然第一個元素佔用的記憶體區間是以b開始的s個位元組(即,[b, s+b-1]),而此時線性表保證第二個元素的第一個位元組位置為s+b。以此類推。

這樣的方式的意義有兩點: 1. 節約記憶體,方便堆疊管理 2.

支援常數時間的快速隨機查詢,也就是說,要查詢線性表的第n個元素所需要的速度和線性表大小無關。

2樓:網友

id是英文identity的縮寫,身份標識號碼的意思。也稱為序列號或帳號,是某個體系中相對唯一的編碼,相當於是一種「身份證」在某一具體的事物中,id號一般是不變的,至於用什麼來標識該事物,則由設計者自己制定的規則來確定。一般而言,這個規則根據具體的使用環境在設計上有一定的主觀性,如:

員工工號」、「身份證號碼」「計算機**」等。對於計算機主要有兩種運算方式,邏輯運算和算術運算,邏輯運算便關係到數字的id功能。id在生活中是很常見的,比如你將產品的型號,生產號等分別貼在同類的事物上以區分他們,這個也可以叫id。

線性表的順序儲存結構是隨機存取的?

3樓:四舍**入

可以參考下面幾種解釋。

1、解釋一:

順序儲存結構的地址在記憶體中是連續的所以可以通過計算地址實現隨機存取,與此相對 鏈式儲存結構的儲存地址不一定連續,只能通過第個結點的指標順序存取。

2、解釋二:

線性表的順序儲存結構可以通過線性表的首址加偏移的方法計算出來第i個資料的位置a+i*sizeof(單個結構)而線性表的鏈式儲存結構要訪問第i個資料,就必須先訪問前面的i-1個資料。

4樓:匿名使用者

線性表的順序儲存結構可以通過線性表的首址加偏移的方法計算出來第i個資料的位置a+i*sizeof(單個結構)而線性表的鏈式儲存結構要訪問第i個資料,就必須先訪問前面的i-1個資料。

線性表的順序儲存結構是以什麼來表示資料元素之間的邏輯關係的

5樓:情投意合張老師

線性表是最基本、最簡單、也是最常用的一種資料結構。線性表(linear list)是資料結構的一種,一個線性表是n個具有相同特性的資料元素的有限序列。

線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、佇列、字串等特殊形式使用。

順序表示指的是用一組地址連續的儲存單元依次儲存線性表的資料元素,稱為線性表的順序儲存結構或順序映像(sequential mapping)。它以「物理位置相鄰」來表示線性表中資料元素間的邏輯關係,可隨機存取表中任一元素。

由此得到的儲存結構為順序儲存結構,通常順序儲存結構是藉助於計算機程式設計語言(例如c/c++)的陣列來描述的。

順序儲存結構的主要優點是節省儲存空間,因為分配給資料的儲存單元全用存放結點的資料(不考慮c/c++語言中陣列需指定大小的情況),結點之間的邏輯關係沒有佔用額外的儲存空間。

採用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的儲存地址。但順序儲存方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。

線性表順序儲存結構的結構**:

#define maxsize 20

typedef int elemtype;

typedef struct

sqlist;

順序儲存結構封裝需要三個屬性:

儲存空間的起始位置,陣列data,它的儲存位置就是線性表儲存空間的儲存位置。

線性表的最大儲存容量:陣列的長度maxsize。

線性表的當前長度:length。

注意:陣列的長度與線性表的當前長度需要區分一下:陣列的長度是存放線性表的儲存空間的總長度,一般初始化後不變。而線性表的當前長度是線性表中元素的個數,是會變化的。

線性表順序儲存結構的優缺點。

線性表的順序儲存結構,在存、讀資料時,不管是哪個位置,時間複雜度都是o(1)。而在插入或刪除時,時間複雜度都是o(n)。

優點:無須為表示表中元素之間的邏輯關係而增加額外的儲存空間。

可以快速地存取表中任意位置的元素。

缺點:插上和刪除操作需要移動大量元素。

當線性表長度變化較大時,難以確定儲存空間的容量。

容易造成儲存空間的「碎片」

6樓:輕盈的胖子射手

線性表的順序儲存結構是以元素的相對物理位置來表示資料元素之間的邏輯關係的。

何時選用順序表、何時選用連結串列作為線性表的儲存結構為宜

7樓:墨汁諾

順序表的特點是按位訪問快,中間插入刪除慢,因此元素個數變動不大,經常按位置訪問適宜於順序儲存。

順序表往往使用一組連續的記憶體,對固定元素的隨機存取(比如存取第幾個元素)很方便。因此更適合於存放需要多次修改的資料。

連結串列的特點是隻能順序訪問,中間插入刪除快,因此適宜於元素個數變動較大,經常插入刪除的場合。

連結串列就是像鐵鏈一樣,可以一直加,只要拿到頭,就可以遍歷整個連結串列裡面的元素,每個元素的位置可能和其他元素的儲存位置不是連續的,所以查詢比較慢,但是增加刪除比較快。

8樓:匿名使用者

頻繁按位置訪問,少插入刪除者使用順序表為適宜。

元素個數頻繁變化,多插入刪除(非在端點進行),無法預估空間等使用連結串列較為適宜。

9樓:心如青青

在實際應用中,應根據具體問題的要求和性質來選擇順序表或連結串列作為線性表的儲存結構,通常有以下幾方面的考慮:1.基於空間的考慮。

當要求儲存的線性表長度變化不大,易於事先確定其大小時,為了節約儲存空間,宜採用順序表;反之,當線性表長度變化大,難以估計其儲存規模時,採用動態連結串列作為儲存結構為好。2.基於時間的考慮。

若線性表的操作主要是進行查詢,很少做插入和刪除操作時,採用順序表做儲存結構為宜;反之,若需要對線性表進行頻繁地插入或刪除等的操作時,宜採用連結串列做儲存結構。並且,若連結串列的插入和刪除主要發生在表的首尾兩端,則採用尾指標表示的單迴圈連結串列為宜。

線性儲存結構就是順序儲存結構嗎 線性表是線性儲存結構嗎

不是,他們的關係可以如圖所示。線性表包括順序儲存結構和鏈式儲存結構。線性表的劃分是從資料的邏輯結構上進行的。線性指的是在資料的邏輯結構上是線性的。即在資料元素的非空有限集中 1 存在唯一的一個被稱作 第一個 的資料元素,2 存在唯一的一個被稱作 最後一個 的資料元素,3 除第一個外,集合中的每個資料...

資料結構練習題 線性表操作,資料結構練習題 線性表操作

連結串列實現 include include include define len sizeof struct lnode define max 1000 typedef struct lnode linklist int createsq linklist l int insertsq linkl...

串是一種特殊的線性表,其特殊性體現在什麼地方

串是一種特 bai殊的線性表,其特殊性體現du在資料zhi元素是一個字元dao串值也可用連結串列來儲存,由於內串的數 據元素是一容個字元,它只有8位二進位制數,因此用連結串列儲存時,通常一個結點中存放的不是一個字元,而是一個子串,例如 在編輯系統中,整個文字編輯區可以看成是一個串,每一行是一個子串,...