當前位置:首頁 » 服務存儲 » 鏈式存儲結構中要求
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

鏈式存儲結構中要求

發布時間: 2022-09-27 11:10:10

1. 線性表若採用鏈表存儲結構,要求內存中可用存儲單元地址

這是數據結構的問題,鏈式存儲結構與順序存儲結構相比,最大的優點就是地址不連續。操作更靈活. 選擇D

2. 數據結構題目

選A
每個結點佔用一片連續的存儲區域。

鏈式存儲結構不需要所有結點佔用一片連續的存儲區域,結點之間用指針相鏈接。
順序存儲才是需要所有結點都有一片連續的存儲區域的。
但是無論是順序存儲還是鏈式存儲,每個結點都要佔用一片連續的存儲區域。
結點的結構是

前驅指針—數據域—後繼指針

註:首結點沒有前驅,最後一個結點沒有後繼。
由此可得——cd錯誤.

3. 存儲結構的概念

存儲結構的概念
數據元素之間的關系有兩種不同的表示方法:順序映象和非順序映象,並由此得到兩種不同的存儲結構:順序存儲結構和鏈式存儲結構。

數據的存儲結構是指數據的邏輯結構在計算機中的表示。

數據儲存結構
分類
順序存儲方法它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常藉助於程序設計語言中的數組來實現。

鏈接存儲方法它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針欄位表示的。由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常藉助於程序設計語言中的指針類型來實現。

存儲和鏈接存儲的基本原理
順序存儲和鏈接存儲是數據的兩種最基本的存儲結構。

在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,而且含有元素之間邏輯關系的信息。

數據的鏈式存儲結構可用鏈接表來表示

其中data表示值域,用來存儲節點的數值部分。Pl,p2,…,Pill(1n≥1)均為指針域,每個指針域為其對應的後繼元素或前驅元素所在結點(以後簡稱為後繼結點或前驅結點)的存儲位置。通過結點的指針域(又稱為鏈域)可以訪問到對應的後繼結點或前驅結點,若一個結點中的某個指針域不需要指向其他結點,則令它的值為空(NULL)。

在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。

4. 鏈式存儲隊列的數據結構(邏輯結構+存儲結構)分析、鏈式存儲隊列的基本C語言結構體分析與定義

鏈式隊列

鏈式存儲結構的隊列稱作鏈式隊列。

鏈式隊列的隊頭指針指在隊列的當前隊頭結點位置,隊尾指針指在隊列的當前隊尾結點位置。不帶頭結點的鏈式隊列時可直接刪除隊頭指針所指的結點。

鏈式隊列中結點的結構體可定義如下:

typedef struct qnode

{

DataType datal;

Struct qnode *next;

}LQNode;

為了方便參數調用,通常把鏈式隊列的隊頭指針front和隊尾指針rear也定義為如下的結構體類型LQueue:

typedef struct

{

LQNode *front;

LQNode *rear;

}LQueue;

鏈式隊列操作的實現

(1) 初始化QueueInitiate(LQueue *Q)

void QueueInitiate(LQueue *Q)

{

Q->rear=NULL;

Q->front=NULL;

}

(2)非空否QueueNotEmpty(LQueue Q)

int QueueNotEmpty(LQueue Q)

/*判斷鏈式隊列Q非空否,非空返回1,否則返回0*/

{

if(Q.front==NULL)return 0;

else return 1;

}

(3)入隊列QueueAppend(LQueue *Q,DataType x)

int QueueAppend(LQueue *Q,DataType x)

/*把數據元素x插入鏈式隊列Q隊列的隊尾,入隊列成功返回1,否則返回0*/

{

LQNode *p;

if((p=(LQNode*)malloc(sizeof(LQNode)))==NULL)

{

printf(「內存不足無法插入!\n);

return 0;

}

p->data=x;

p->next=NULL;

if(Q->rear!=NULL)Q->rear->next=p;

Q->rear=p;

if(Q->front==NULL)Q->front=p;

return 1;

}

(4)出隊列QueueDelete(LQueue *Q,DataType *d)

int QueueDelete(LQueue *Q,DataType *d)

/*刪除鏈式隊列Q的隊頭數據元素值到d,出隊列成功返回1,否則返回0*/

{

LQNode *p;

if(Q->front==NULL)

{

printf(「隊列已空無數據元素出隊列!\n」);

return 0;

}

else

{

*d=Q->front->data;

p=Q->front;

Q->front=Q->front->next;

if(Q->front==NULL)Q->rear=NULL;

free(p);

return 1;

}

}

(5)取隊頭數據元素QueueGet(LQueue *Q,DataType *d)

int QueueGet(LQueue *Q,DataType *d)

/*取鏈式隊列Q的當前隊頭數據元素值到d,成功返回1,否則返回0*/

{

if(Q.front==NULL)

{

printf(「隊列已空無數據元素出隊列!\n);

return 0;

}

else

{

*d=Q.front->data;

return 1;

}

}

(6)撤銷動態申請空間Destory(LQueue *head)

int Destory(LQueue *head)

{

LQNode *p,*p1;

p=Q.front;

while(p!=NULL)

{

p1=p;

p=p->next;

free(p1);

}

}
幫你轉的,我覺得他描述的很清楚。希望對你有幫助。

5. 線性表若採用鏈式存儲結構時,要求內存中可用存儲單元的地址______。  A.必須是連續的  B.

正確答案是D

6. 線性表鏈式存儲結構的優點和缺點有什麼

一、線性表鏈式存儲結構的優點:

1、均勻性:雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。對於線性鏈表,可以從頭指針開始,沿各結點的指針掃描到鏈表中的所有結點。

2、有序性:各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的第一個和最後一個的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素(直接前驅)和後面均只有一個數據元素(直接後繼)。

二、線性表鏈式存儲結構的缺點:

線性表鏈式存儲結構不要求邏輯上相鄰的元素在物理位置上是相鄰,因此,它沒有順序存儲結構所具有的弱點,但也同時失去了順序表可隨機存取的優點。

(6)鏈式存儲結構中要求擴展閱讀:

線性表鏈式存儲結構的其他介紹:

一般在計算機的硬碟中,文件都是鏈式存儲的。我們知道,多個扇區組成一個簇,簇是計算機存儲數據的基本單位。

而一個文件是存儲在多個在空間上也許並不相連的簇中的,這就是鏈式存儲。但是為了能夠讀取出這個文件,計算機會在該文件第一部分的尾部寫上第二部分所在的簇號。

另一部分的尾部又寫上第三部分,以此類推,最後一部分寫上一段代碼,表示這是該文件的最後一部分。值得一提的是,高簇號在後。(如代碼所示的1234實為簇3412)文件所佔簇可認為是隨機分配的。

7. 線性表採用鏈表存儲結構,要求內存中可用存儲單元地址()

選擇D。
不過應該不是「連接」,而是「連續」。
鏈式存儲結構與順序存儲結構相比,最大的優點就是地址不連續。因此才會使得元素的插入、刪除等操作變得方便。

8. 試述隊列的鏈式存儲結構和順序存儲結構的優缺點

順序存儲結構是在內存中開辟一個連續的空間用來存儲數據,因此對於內存的需求和苛刻,必須是連續的空間.在數據查找(特別是不按照規律排列的數據),時間復雜度教少.效率高.
鏈式存儲結構是採取連表指針來指示數據的存儲位置,這就可以是在內存中隨意的存儲,沒有必須連續儲存空間的要求,對於內存的要求相對教容易.但是要是是從小到大順序排列的數據,鏈式存儲結構的時間復雜度教小,效率高.但是要是不規則排布的數據一般時間復雜度較高,效率更低

9. 順序存儲結構和鏈式存儲結構的優缺點

存儲空間
順序存儲結構是要求事先分配存儲空間的,即靜態分配,所以難以估計存儲空間的大小。估計過大會造成浪費,估計太小又容易造成空間溢出。
 而鏈式存儲結構的存儲空間是動態分配的,只要計算機內存空間還有空閑,就不會發生溢出。
 另外還可以從存儲密度的角度考慮,存儲密度的定義公式為:一般來說,存儲密度越大,存儲空間的利用率就越高。
顯然,順序存儲結構的存儲密度為1,而鏈式存儲結構的存儲密度小於1。
運算時間
順序表是一種順序存儲結構,對表中任一結點都可以在O(1)時間復雜度下直接訪問;而訪問鏈表中的某個結點時,必須從頭指針開始沿著鏈表順序查找,時間復雜度為O(n)。
鏈表順序查找,時間復雜度為O(n)。
 因此,如果對線性表的操作以查找為主,則採用順序存儲結構較好;若以插入、刪除為主,則採用鏈式存儲結構為宜。

10. 鏈式存儲結構的簡介

它不要求邏輯上相鄰的元素在物理位置上也相鄰.因此它沒有順序存儲結構所具有的弱點,但也同時失去了順序表可隨機存取的優點.