Ⅰ 關於數據結構的問題
應該是A,雙向鏈表就不說了。
首先應該了解存儲表示方法有四種:
◆ 順序存儲方法:它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現。由此得到的存儲表示稱為順序存儲結構。
◆ 鏈接存儲方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針欄位表示的。由此得到的存儲表示稱為鏈式存儲結構。
◆ 索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。
◆ 散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。
閉散列表是應該屬於散列存儲,是哈希演算法的一種處理存儲沖突方式,
當由關鍵碼得到的哈希地址一旦產生了沖突,也就是說,該地址已經存放了數據元素,就去尋找下一個空的哈希地址,只要哈希表足夠大,空的哈希地址總能找到,並將數據元素存入. 所以符合散列存儲方法的要求。
而線索二叉樹是索引存儲,它是對二叉樹以某種方式遍歷後,得到二叉樹中所有結點的一個線性序列。這樣,二叉樹中的結點就有了唯一直接前驅結點和唯一直接後繼結點。
在線索二叉樹時,二叉樹採用二叉鏈表作為存儲結構,每個結點有五個域leftChild,leftTag,data,rightTag,rightChild
規定:如果某結點的左指針域為空,令其指向依某種方式遍歷時所得到的該結點的前驅結點,否則指向左孩子。
如果某結點的右指針域為空,令其指向依某種方式遍歷時所得到的該結點的後繼結點,否則指向右孩子(??)
為了區分一個結點的指針是指向左右孩子還是指向前驅,後繼結點,可用標志為來區分:
如果 leftTag/rightTag=0,那麼指向左/右孩子。
如果 leftTag/rightTag=1,那麼指向前驅/後繼線索。
對一顆二叉樹的遍歷方法不同,得到的線索二叉樹也不同。通常有前序線索二叉樹,中序線索二叉樹,後序線索二叉樹。
Ⅱ 什麼是系統中存放數據的基本方式
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據。順序存儲方式把邏輯上相鄰的節點存儲在物理位置撒花姑娘相鄰的存儲單元里,節點間的邏輯關系由存儲單元的鄰接關系來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或結構數組來描述。
2、鏈接存儲方式:鏈接存儲方式比較靈活,不要求邏輯上相鄰的節點在物理位置上相鄰,節點間的邏輯關系由附加的引用欄位來表示。一個節點的引用欄位往往指向下一個節點的存放位置。鏈接存儲方式也成為鏈式存儲結構。
3、索引存儲方式:索引存儲方式是採用附加的索引表的方式來存儲節點信息的一種存儲方式。索引表由若干索引項組成。索引存儲方式中索引項的一般形式為(關鍵字、地址)。其中,關鍵字是能夠唯一標識一個節點的數據項。索引存儲方式還可以細分為如下兩類。
稠密索引:這種方式中每個節點在索引表中都有一個索引項,其中索引項的地址知識節點所在的存儲位置。
稀疏索引:這種方式中一組節點在索引表中只對應一個索引項。其中,索引項的地址指示一組節點的起始存儲位置。
4、散列存儲方式:散列存儲方式是根據節點的關鍵字直接計算出該節點的存儲地址的一種存儲方式。
在實際應用中,往往需要根據具體的數據結構來決定採用哪種存儲方式。同一邏輯結構採用不同的存儲方法,可以得到不同的存儲結構。而且者4中基本存儲方法,既可以單獨使用,也可以組合起來對數據結構進行存儲描述。
Ⅲ 數據結構的存儲方式有哪幾種
數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據,把邏輯上相連的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接掛安息來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或者結構數組來描述。
2、鏈接存儲方法:它比較靈活,其不要求邏輯上相鄰的結點在物理位置上相鄰,結點間的邏輯關系由附加的引用欄位表示。一個結點的引用欄位往往指導下一個結點的存放位置。鏈接存儲方式也稱為鏈接式存儲結構,一般在原數據項中增加應用類型來表示結點之間的位置關系。
3、索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。它細分為兩類:稠密索引:每個結點在索引表中都有一個索引項,索引項的地址指示結點所在的的存儲位置;稀疏索引:一組結點在索引表中只對應一個索引項,索引項的地址指示一組結點的起始存儲位置。
4、散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。
(3)鏈接存儲結構中定位項的方法擴展閱讀
順序存儲和鏈接存儲的基本原理
在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。
在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,還含有元素之間邏輯關系的信息。數據的鏈式存儲結構可用鏈接表來表示。其中data表示值域,用來存儲節點的數值部分。Pl,p2,…,Pill(1n≥1)均為指針域,每個指針域為其對應的後繼元素或前驅元素所在結點的存儲位置。
在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。
Ⅳ 計算機有哪些存儲結構
計算機存儲來說一般有四種方式:
(1)順序存儲方法
該方法把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現。
由此得到的存儲表示稱為順序存儲結構
(Sequential
Storage
Structure),通常藉助程序語言的數組描述。
該方法主要應用於線性的數據結構。非線性的數據結構也可通過某種線性化的方法實現順序存儲。
(2)鏈接存儲方法
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系由附加的指針欄位表示。由此得到的存儲表示稱為鏈式存儲結構(Linked
Storage Structure),通常藉助於程序語言的指針類型描述。
(3)索引存儲方法
該方法通常在儲存結點信息的同時,還建立附加的索引表。
索引表由若干索引項組成。若每個結點在索引表中都有一個索引項,則該索引表稱之為稠密索引(Dense Index)。若一組結點在索引表中只對應一個索引項,則該索引表稱為稀疏索引(Spare
Index)。索引項的一般形式是:
關鍵字是能唯一標識一個結點的那些數據項。稠密索引中索引項的地址指示結點所在的存儲位置;稀疏索引中索引項的地址指示一組結點的起始存儲位置。
(4)散列存儲方法
該方法的基本思想是:根據結點的關鍵字直接計算出該結點的存儲地址。
四種基本存儲方法,既可單獨使用,也可組合起來對數據結構進行存儲映像。
同一邏輯結構採用不同的存儲方法,可以得到不同的存儲結構。選擇何種存儲結構來表示相應的邏輯結構,視具體要求而定,主要考慮運算方便及演算法的時空要求。
Ⅳ 數據結構,樹的常用存儲方式
存入文本文件,每行:孩子節點-父節點。
這樣也方便用Hadoop進行處理。
Ⅵ 常用的存儲表示方法有哪幾種
摘要 數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。
Ⅶ 數據結構(c語言版)採用順序存儲結構,完成串的聯接和子串定位操作
#include<stdio.h>
void main(){
char s1[100]={'a','b','a','b','b','a','a','b','a','a','\0'};
char s2[100]={'a','a','b','\0'};
int i=0,j=0;
while(s1[i]!='\0'){
i++;
}
printf("定位結果為%d(0為第一個)\n",i);
while(s2[j]!='\0'){
s1[i]=s2[j];
i++;
j++;
}
s1[i]='\0';
printf("%s",s1);
}