日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【线性表4】线性表的链式实现:静态表

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【线性表4】线性表的链式实现:静态表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

靜態表依然是一種鏈表,只不過結點是存儲在預先分配好的一個大的結點數組中的。使用靜態表的場合是:有些編程語言沒有指針,但有數組,因此就不能使用傳統的鏈表,這個時候就可以使用靜態表是去實現。

特點:結點的 “指針域” 保存的是下一個結點在數組中的索引。它依然是鏈表,不支持隨機訪問。

靜態表在實際編程中并不常用。

?

靜態表的原理

如下是一個表內容為 【'A' , 'B' , 'C' , 'D' , 'E'】 的字符鏈表的剖析圖

?

?

假設 L 是 StaticList ?對象 ,內部使用數組 nodes保存所有結點空間,則從L的成員字段firstNodeIndex可以獲取到第一個結點在數組中的位置,因此

訪問到第一個結點 ?: i = firstNodeIndex ; ? ?

nodes[i] ? ? ? ? ? 第一個結點對象

nodes[i].element ? 第一個結點的數據域

nodes[i].next ? ? ?第一個結點的“指針域”

?

訪問到第二個結點 ?: i = ?nodes[i].next?; ? ?

nodes[i] ? ? ? ?第二個結點對象

nodes[i].element ? ? 第二個結點的數據域

nodes[i].next ? ? ? ? 第二個結點的“指針域”

?

如此下去......當訪問到的結點的next為-1時,表示它是最后一個結點。最后一個結點的索引用字段lastNodeIndex保存。

?

我們還用了一個set對象保存結點數組中,空閑的結點的索引。如果需要創建新的結點,則從這個集合里任意取出一個索引并從set中移除。如果有結點被刪除或者數組擴充了容量,則將這些結點的索引添加到set中使之可以再被利用。

?

由于靜態表也是一種鏈表,因此插入,刪除數據也不需要移動數組元素,只需修改結點的“指針域”即可。

?

總結

以上是生活随笔為你收集整理的【线性表4】线性表的链式实现:静态表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。