1、在這裡我們首先要複習一下鍊錶c語言的定義:這看起來很簡單,但實際上至關重要!!!
data域--存放結點值的資料域。
next域--存放結點的直接後繼的位址(位置)的指標域(鏈域),也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。
注意:①鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一起的。
②每個結點只有乙個鏈域的鍊錶稱為單鏈表(single linked list)。
2、靜態鍊錶
靜態鍊錶的存在是由於早期的語言不存在指標這一說法,所以就有人提出使用陣列來代替指標描述鍊錶,這就是靜態鍊錶的產生。
雖然靜態鍊錶以後不一定會用得到,但是這樣的設想很是巧妙,所以我們這裡只是學習靜態鍊錶的設計思想,而不做具體的實現。
靜態鍊錶的定義:
首先都是讓陣列的元素都是由兩個資料域組成 ,data和cur。也就是說陣列中每個下標都對應乙個data和cur。data於用來儲存資料,而游標cur就像next一樣,儲存該元素後繼在陣列中的下標。
同時這裡我們做一下特殊處理,陣列的乙個位置和最後乙個位置不存放資料。我們把未使用的陣列元素稱為備用鍊錶。把陣列的第乙個元素,即下標為0的元素的cur存放備用鍊錶的第乙個節點的下標;而陣列的最後乙個元素的cur則存放第乙個有數值的元素的下標,相當於單鏈表的頭節點的作用。如果靜態鍊錶為空,則如下圖所示:
資料結構 靜態鍊錶
首先我們讓陣列的元素都是由兩個資料域組成,data和cur。也就是說,陣列的每乙個下標都對應乙個data和乙個cur。資料域data用來存放資料元素,也就是通常我們要處理的資料 而游標cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。陣列的第...
資料結構 靜態鍊錶
include using namespace std struct node typedef node linklist define maxsize 20 void init linklist list int getlength linklist list int malloc linklis...
靜態鍊錶(資料結構)
靜態鍊錶 結構體變數中包含資料域和游標域 typedef struct node snode 靜態鍊錶 1.陣列的下標為0的元素的游標域存放的是未使用鍊錶的第乙個節點的下標。2.陣列的最後乙個元素 slist size 1 存放的是第乙個有資料值得元素的下標。3.最後乙個元素相當於單鏈表的頭結點。具...