當前位置:首頁 » 編程語言 » python創建鏈表

python創建鏈表

發布時間: 2022-02-28 15:35:39

python pyautocad,如何構建一個鏈表問題,怎麼解決

class UnorderedList:
def __init__(self):
self.head = None

def add(self, item):
new_node = Node(item)
new_node.set_next(self.head)
self.head = new_node

def size(self):
current = self.head
count = 0
while current != None:
count = count + 1
current = current.get_next()
return count

def is_empty(self):
return self.head == None

def add_all(self, other_list):
for item in other_list:
self.add(item)
return self.head

def __iter__(self):
current = self.head
while current:
yield current
current = current.get_next()

def print_all(self):
for item in self:
print(item.get_data())

class Node:
def __init__(self, init_data):
self.data = init_data
self.next = None

def get_data(self):
return self.data

def get_next(self):
return self.next

def set_data(self, new_data):
self.data = new_data

def set_next(self, new_next):
self.next = new_next

if __name__ == "__main__":
s = UnorderedList()
s.add(33)
s.add(44)
s.add_all([1,2,3,4])
s.print_all()

Ⅱ python可以編寫自己的鏈表類嗎

你如果一定要模擬C建立樹形結構的方式,可以不必特意制定left和right的類型,僅在需要的時候給其賦上LinkedList的類型就行了。
如:
>>> class LinkedList():
def __init__(self,default_value=""):
self.left=0 #比如0表示left節點為空
self.right=0

self.value=default_value
return

>>> root = LinkedList()
>>> left = LinkedList()
>>> right = LinkedList()
>>> root.left = left
>>> root.right = right
>>> root.left
<__main__.LinkedList object at 0x00F964B0>

你自己寫的那個class有不少錯誤,比如value,left,right這樣寫,屬於類值,類似C++中的靜態值,是所有LinkedList類和類實例共享的,你的__init__缺少self。

Ⅲ [zz]為什麼python標准庫沒有實現鏈表

在需要用到linked list特性的地方,比如常常需要從頭部append或者pop
這時候有python的deque. (這里我記錯了,特此更正,deque如果做insert還是會導致內存拷貝/移動,這裡面的關鍵思想就是目前硬體的內存拷貝相當快,不是相當長的東西都可以接受)
deque也不是通常的簡單數據結構,它是經過認真權衡過後得到的一種混合式數據結構。
他是一個鏈式塊結構,每個塊包含62個對象,以此來平衡對locality的優化和對push, pop的優化。有人問為啥是62個而不是其他數:那是因為deque是個雙向鏈表,一個節點64個指針,一個指向前一個指向後,剩下就是62個指針用來指向對象

Ⅳ 如何使用python建立鏈表

classListNode:
def__init__(self,x):
self.val=x
self.next=None


l1=newListNode(0)
l1.next=newListNode(1)

Ⅳ python 單向鏈表問題

不會。
實際上,SingleLinkedList只存儲了鏈表的表頭節點的位置。
每次調用add函數,相當於新建了一個節點,
調用setNext將其下一節點指向現在鏈表的表頭,
然後將新建的節點位置作為新的表頭位置保存在鏈表裡面。
要得到鏈表的所有節點必須從表頭節點開始一個一個往下跳轉,一直跳轉到下一節點位置為None,則表示查詢完畢。

Ⅵ python中的鏈表和列表有什麼區別

列表是python的一種數據結構,每個列表可以沒有或者是多個元素,每個元素可以是字元,數據,列表,或者是字典。
python中沒有指針,所以對於C語言來的鏈表,只能是一個模擬鏈表,一般都是通過一個class來定義node,node中的self。value就是對應的數據,self。p指向下一個node。
通過上面的分析我們可以看到他們有相同的地方就是他們都是數據存儲的手段,列表是python的基礎元素,范圍很廣,數據是連續存放,鏈表相對來說應用的范圍比較少,數據是不連續存放,一般都是用於高效合並的數據結構。

Ⅶ python中如何用鏈表實現隊列

python中的隊列是列表嗎?
如果有問題, 希望能一起研究一下?
看下網名吧, 樓主

Ⅷ python有鏈表嗎

python中的鏈表(linked list)是一組數據項的集合,其中每個數據項都是一個節點的一部分,每個節點還包含指向下一個節點的鏈接。鏈表有兩種類型:單鏈表和雙鏈表。
鏈表的數據結構
在鏈表中刪除操作可以通過修改指針來實現,
插入則是調整,插入點的前後兩個指針的指向關系,
在python中每個變數都是指針,例如:

用內置數據結構(list,dict,tuple等)的嵌套/組合,它們隱式地包含了指向/嵌套關系,如graph[u][v]={w0,w1..}類的成員變數、嵌套類可能包含了指向/嵌套關系;
引用表示指向關系,只不過引用不能像指針一樣運算,比如p+1指向下一個元素,所以可能限制頗多。因此,要實現鏈表的操作,不能和c一樣直接對指針進行操作。
python學習網,大量的免費python視頻教程,歡迎在線學習!

Ⅸ python中的鏈表(linked list)

鳳鸞寶帳景非常,盡是泥金巧樣妝。
曲曲遠山飛翠色,翩翩舞袖映霞裳。
梨花帶雨爭嬌艷,芍葯籠煙騁媚妝。
但得妖嬈能舉動,取回長樂侍君王。

// 這題需要使用輾轉相除法,又名歐幾里德演算法(Euclideanalgorithm)
#include <stdio.h>

int main (void)
{
int m, n, p, tmp;

printf ("Please type in two number:\n");
scanf ("%i %i", &m, &n); //輸入兩個數,分別放入m, n
p=m*n; //先把兩數的積算出來,後面m和n的值會有變

while (n!=0){
tmp=m%n;
m=n;
n=tmp; //這段是求最大公約數的演算法
}

printf ("The GCD is %i\n", m); //上面的演算法n=0時m這時的值就是最大公約數
printf ("The LCM is %i\n", p/m);//兩數的積除以最大公約數就是最小公倍數了

return 0;
}

Ⅹ python的雙向鏈表

這里有一個:
https://github.com/rgsoda/pypy-llist/

熱點內容
android學習源碼 發布:2025-01-11 11:26:23 瀏覽:411
伺服器都壞了如何恢復 發布:2025-01-11 11:24:04 瀏覽:352
微博緩存的圖片能清理嗎 發布:2025-01-11 11:01:49 瀏覽:306
文字加密器 發布:2025-01-11 11:01:08 瀏覽:453
vc60非靜態編譯 發布:2025-01-11 10:51:32 瀏覽:614
電腦上怎麼解壓縮文件 發布:2025-01-11 10:51:31 瀏覽:783
槍戰王者如何用賬號密碼登錄 發布:2025-01-11 10:30:56 瀏覽:938
mysql在linux下安裝 發布:2025-01-11 10:30:49 瀏覽:845
資料庫copy 發布:2025-01-11 10:26:06 瀏覽:534
unity清理緩存 發布:2025-01-11 10:25:23 瀏覽:468