Java Python中沒有指標,怎麼實現鍊錶 圖等資料結構?

時間 2021-05-30 10:51:32

1樓:ChanCL

因為Python是動態型別呀,指標這種東西,不要也罷,用乙個變數指向下乙個物件就好了

指標只不過是為了找到下乙個元素所用的方式。

而不是有指標才叫做鍊錶圖

2樓:

引用是比指標更加安全的「指標」吧,可以這麼理解吧。至於Python,看看Python的C原始碼就知道其實本質也是指標(畢竟是C語言寫的)。

3樓:

連老式 BASIC 用一組陣列下標來都可以實現鍊錶...

DIM VALUE$(100)

DIM NEXT%(100)

NEXT%[0] = -1

FUNCTION LENGTH%()

DIM CURRENT%,COUNT%

CURRENT% = 0

WHILE NEXT%[CURRENT] = -1COUNT% = COUNT% + 1

CURRENT = NEXT%[CURRENT]WEND

LENGTH% = COUNT%

END FUNCTION

4樓:

class linkedList:

def __init__(self,valueself.val=valueself.next=None...

5樓:rainoftime

方法有很多:

用內建資料結構(list, dict, tuple等)的巢狀/組合,它們隱式地包含了指向/巢狀關係,如上面回答中的graph[u][v]=

類的成員變數、巢狀類可能包含了指向/巢狀關係;

引用表示指向關係,只不過引用不能像指標一樣運算,比如 p + 1 指向下乙個元素,所以可能限制頗多。

...Leetcode中的例子

class

TreeNode

:# 類的結構已經包含了指向關係

def__init__

(self,x

):self

.val=x

self

.left

=None

self

.right

=Nonel1=

TreeNode(0

)l2=TreeNode(1

)l3=TreeNode(2

)# 引用表示指向關係l1.

left=l2

l1.right=l3

另外推薦一本書 《Data Structures and Algorithms Using Python》(之前的回答有人提到了)

6樓:林濯

記得高中在學PASCAL的時候,學長教完指標以後對我們說:「懂了沒……好,懂了就用不到了。下面我們來講模擬鍊錶……」

除了不能實現動態記憶體以外,

靜態資料結構完全可以實現(模擬)指標的各種特性。

模擬指標大概是這樣:

用乙個單調遞增的變數ads作為模擬位址值

用H陣列儲存物件的位址

每次新建乙個物件i

就把ads++,H[i]<--ads

然後物件的屬性就用以ads為下標的陣列a、b、c……元素儲存。

需要訪問的時候就用乙個整型變數P作為模擬指標,P<--H[i],a[p],b[p],c[p]……就等價p*.a p*.b p*.c……

7樓:gaocegege

指標只是一種實現的方式,就像人沒有了腳不是就不能走路了,可以用假腿。至於怎麼實現,每乙個節點有乙個成員變數引用下乙個節點就行了。

指標分析中,storeless model和store based model的區別是什麼?

李欣宜 我覺得你有興趣可以讀一下Heap Abstractions for Static Analysis Heap Abstractions for Static Analysis 文章總結了根據不同堆抽象模型分類下的靜態分析 特別是指標分析 模型的差異,文章是認為最大的差異是 store bas...

c 中的指標重要嗎

yaochongchong 不是重要,是很重要,我覺得算是靈魂之一,C 功能強大,很大一部分是因為靈活的指標運用。記憶體的訪問和呼叫沒有指標很難精確。指標變數也是乙個偉大的發明,指標是程式資料在記憶體中的位址,而指標變數是用來儲存這些位址的變數。有了這兩個東西,內存在程式設計師眼中就是任意實現理想的...

C語言有指標字串,為什麼沒有指標數字?

虛實道長 我個人覺得這個跟計算機的架構,以及數字或者字元的編碼有關。計算機如果暫存器是32位的,當然可以直接支援32位的數字 整數或者浮點數 但是字元,本質上也是 數字的形式 儲存,那麼顯然的問題就是 如何把abcd26個英文本元和常用字元用什麼數字儲存?單個字元可以轉化為32位數字,而字串不能夠。...